다음을 통해 공유


로캘 및 코드 페이지

로캘 ID는 특정 지역에 대한 지역 규칙과 언어를 반영합니다. 지정된 언어는 여러 국가/지역에서 통용될 수 있습니다. 예를 들어, 포르투갈어는 브라질과 포르투갈에서 통용됩니다. 반대로 한 국가/지역에 공식어가 여러 개 있을 수 있습니다. 예를 들어, 캐나다에서는 영어와 프랑스어를 모두 사용합니다. 따라서 캐나다에는 캐나다 영어와 캐나다 프랑스어의 두 가지 로캘이 있습니다. 일부 로캘 종속 범주에는 날짜 형식 지정 및 통화 값의 형식 표시가 포함됩니다.

언어에 따라 텍스트 및 데이터 형식 지정 규칙이 결정되고 국가/지역에 따라 지역 규칙이 결정됩니다. 모든 언어에는 코드 페이지가 나타내는 고유한 매핑이 있으며, 이러한 매핑에는 영문자 이외의 문자(예: 문장 부호 및 숫자)가 포함됩니다. 코드 페이지는 문자 집합이고 언어와 관련됩니다. 따라서 로캘은 언어, 국가/지역 및 코드 페이지의 고유한 조합입니다. 로캘 및 코드 페이지 설정은 setlocale 함수를 호출하여 런타임에 변경될 수 있습니다.

언어마다 다른 코드 페이지를 사용할 수 있습니다. 예를 들어, ANSI 코드 페이지 1252는 미국 영어와 대부분의 유럽 언어에 사용되고, ANSI 코드 페이지 932는 일본어 간지에 사용됩니다. 실제로 모든 코드 페이지는 가장 낮은 128자에 대한 ASCII 문자 집합(0x00 - 0x7F)을 공유합니다.

모든 싱글바이트 페이지는 엔트리가 256개인 테이블에서 문자(숫자와 문장 부호 포함) 또는 문자 모양에 대한 바이트 값의 매핑으로 표현될 수 있습니다. 모든 멀티바이트 코드 페이지는 문자에 대한 더블바이트 값으로 이루어진 매우 큰 테이블(엔트리가 64K개)로 표현될 수 있습니다. 그러나 실제 이 페이지는 대체로 처음 256(싱글바이트)자에 대한 테이블과 더블바이트 값의 범위로 표현됩니다.

코드 페이지에 대한 자세한 내용은 코드 페이지를 참조하십시오.

C 런타임 라이브러리에는 로캘과 멀티바이트라는 두 가지 형식의 내부 코드 페이지가 있습니다. 프로그램 실행 중에 현재 코드 페이지를 변경할 수 있습니다. setlocale 함수와 _setmbcp 함수에 대한 설명서를 참조하십시오. 런타임 라이브러리가 운영 체제 코드 페이지의 값을 가져와서 사용할 수도 있습니다. Windows 2000에서 운영 체제 코드 페이지는 "시스템 기본 ANSI" 코드 페이지입니다. 이 코드 페이지는 프로그램이 실행되는 동안 일정합니다.

로캘 코드 페이지가 변경되면 로캘 종속 함수들의 동작도 선택한 코드 페이지의 지시에 따라 변경됩니다. 기본적으로 모든 로캘 종속 함수는 먼저 "C" 로캘에 고유한 로캘 코드 페이지를 사용하여 실행됩니다. setlocale 함수를 호출하여 내부 로캘 코드 페이지는 물론 기타 로캘 관련 속성도 변경할 수 있습니다. setlocale(LC_ALL, "")을 호출하면 운영 체제의 사용자 로캘이 나타내는 로캘로 설정됩니다.

마찬가지로 멀티바이트 코드 페이지가 변경되면 선택한 코드 페이지의 지시에 따라 멀티바이트 함수의 동작이 변경됩니다. 기본적으로 모든 멀티바이트 함수는 우선 운영 체제의 기본 코드 페이지에 해당하는 멀티바이트 코드 페이지를 사용하여 실행됩니다. _setmbcp 함수를 호출하여 내부 멀티바이트 코드 페이지를 변경할 수 있습니다.

C 런타임 함수인 setlocale은 현재 프로그램의 일부 또는 모든 로캘 정보를 설정, 변경 또는 쿼리합니다. _wsetlocale 루틴은 setlocale의 와이드 문자 버전이므로 _wsetlocale의 인수와 반환 값은 와이드 문자열입니다.

참고 항목

개념

유니코드 및 MBCS

문자 집합 이식성의 이점