로캘 및 코드 페이지

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

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

언어가 다르면 다른 코드 페이지를 사용할 수 있습니다. 예를 들어 ANSI 코드 페이지 1252는 영어 및 대부분의 유럽 언어에 사용되며 ANSI 코드 페이지 932는 일본어 간지에 사용됩니다. 거의 모든 코드 페이지에서 가장 낮은 128자(0x7F 0x00)에 대한 ASCII 문자 집합을 공유합니다.

모든 싱글바이트 코드 페이지는 테이블(256개 항목 포함)에서 바이트 값을 문자(숫자 및 문장 부호 포함) 또는 문자 모양에 대한 매핑으로 나타낼 수 있습니다. 모든 멀티바이트 코드 페이지는 문자에 대한 더블바이트 값의 매우 큰 테이블(64K 항목 포함)으로 나타낼 수도 있습니다. 그러나 실제로는 일반적으로 처음 256자(싱글 바이트)의 테이블로 표시되고 더블 바이트 값의 범위로 표시됩니다.

코드 페이지에 대한 자세한 내용은 Code Pages를 참조하세요.

C 런타임 라이브러리에는 로캘과 멀티바이트라는 두 가지 유형의 내부 코드 페이지가 있습니다. 프로그램 실행 중에 현재 코드 페이지를 변경할 수 있습니다(setlocale_setmbcp 함수에 대한 설명서 참조). 또한 런타임 라이브러리는 프로그램 실행 기간 동안 일정한 운영 체제 코드 페이지의 값을 가져오고 사용할 수 있습니다.

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

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

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

참고 항목

유니코드 및 멀티바이트 문자 집합(MBCS)
문자 집합 이식성의 이점