UCRT 로캘 이름, 언어 및 국가/지역 문자열

인수setlocalelocale 여러 가지 방법으로 ,_wsetlocale_create_locale_wcreate_locale 함수로 설정할 수 있습니다. 로캘 이름, 언어, 국가/지역 코드 및 Windows NLS API에서 지원하는 코드 페이지를 사용하여 로캘을 설정할 수 있습니다. 인수는 locale 다음 형식 중 하나를 사용합니다.

locale :: "locale-name"
 | "language[_country-region[.code-page]]"
 | ".code-page"
 | "C"
 | ""
 | NULL

locale-name 형식은 짧은 IETF 표준 문자열입니다(예: 영어(미국)의 경우 en-US 또는 보스니아어(키릴 자모, 보스니아 헤르체고비나)의 경우 bs-Cyrl-BA). 이러한 형식이 선호됩니다. Windows 운영 체제 버전별 지원되는 로캘 이름 목록은 [MS-LCID]: Windows LCID(언어 코드 식별자) 참조의 Appendix A: Product Behavior(부록 A: 제품 동작)에 있는 표의 언어 태그 열을 참조하세요. 이 리소스는 로캘 이름의 지원되는 언어, 스크립트 및 영역 부분을 나열합니다. 기본 정렬 순서가 아닌 지원되는 로캘 이름에 대한 자세한 내용은 정렬 순서 식별자의 로캘 이름 열을 참조하세요. Windows 10 이상에서는 유효한 BCP-47 언어 태그에 해당하는 로캘 이름을 사용할 수 있습니다. 예를 들어 jp-US 유효한 BCP-47 태그이지만 로캘 기능에만 US 적용됩니다.

language[_country-region[.code-page]] 양식은 언어 문자열 또는 언어 문자열과 국가 또는 지역 문자열을 사용하여 로캘을 만들 때 범주에 대한 로캘 설정에 저장됩니다. 지원되는 언어 문자열 집합은 언어 문자열에 설명되어 있으며 지원되는 국가 및 지역 문자열 목록은 국가/지역 문자열에 나열됩니다. 지정된 언어가 지정된 국가 또는 지역과 연결되지 않은 경우 지정된 국가 또는 지역의 기본 언어가 로캘 설정에 저장됩니다. 코드에 포함되거나 스토리지로 직렬화된 로캘 문자열에는 이 양식을 사용하지 않는 것이 좋습니다. 이러한 문자열은 로캘 이름 폼보다 운영 체제 업데이트에 의해 변경될 가능성이 높습니다.

code-page는 로캘과 연관된 ANSI/OEM 코드 페이지입니다. 언어 또는 언어와 국가/지역만으로 로캘을 지정하면 코드 페이지가 결정됩니다. 특수 값 .ACP 가 국가/지역에 대한 ANSI 코드 페이지를 지정합니다. 특수 값 .OCP 가 국가/지역에 대한 OEM 코드 페이지를 지정합니다. 예를 들어 로캘로 지정 "Greek_Greece.ACP" 하면 로캘이 (그리스어의 ANSI 코드 페이지)로 Greek_Greece.1253 저장되고 로캘로 지정 "Greek_Greece.OCP" 하면 (그리스어의 OEM 코드 페이지)로 Greek_Greece.737 저장됩니다. 코드 페이지에 대한 자세한 내용은 코드 페이지를 참조 하세요. Windows에서 지원되는 코드 페이지 목록은 코드 페이지 식별자를 참조 하세요.

코드 페이지만 사용하여 로캘을 지정하는 경우 보고된 GetUserDefaultLocaleName 사용자의 기본 언어 및 국가/지역이 사용됩니다. 예를 들어, 영어(미국)로 구성된 사용자에게 ".1254"(ANSI 터키어)를 로캘로 지정하는 경우 저장되는 로캘은 English_United States.1254입니다. 이 양식은 일관되지 않은 동작으로 이어질 수 있으므로 권장하지 않습니다.

인수 값은 localeC C 번역에 대한 최소 ANSI 준수 환경을 지정합니다. C 로캘은 모든 char 데이터 형식이 1바이트이고, 해당 값이 항상 256보다 작은 것으로 간주합니다. locale 이 빈 문자열 가리키면 로캘은 구현 시 정의된 네이티브 환경입니다.

setlocale 범주를 사용하여 _wsetlocaleLC_ALL 함수에 대해 동시에 모든 로캘 범주를 지정할 수 있습니다. 범주를 모두 동일한 로캘로 설정하거나 이 양식을 사용하는 로캘 인수를 사용하여 범주를 각각 설정할 수 있습니다.

LC-ALL-specifier :: locale
 | [LC_COLLATE=locale][;LC_CTYPE=locale][;LC_MONETARY=locale][;LC_NUMERIC=locale][;LC_TIME=locale]

세미콜론으로 구분된 여러 범주 형식을 지정할 수 있습니다. 지정되지 않은 범주 형식은 현재 로캘 설정을 사용합니다. 예를 들어 이 코드 조각에서는 모든 범주에 대한 현재 로캘을 de-DE로 설정한 다음, LC_MONETARY 범주를 en-GB로, LC_TIME 범주를 es-ES로 설정합니다.

_wsetlocale(LC_ALL, L"de-DE");
_wsetlocale(LC_ALL, L"LC_MONETARY=en-GB;LC_TIME=es-ES");

UTF-8 지원

로캘 문자열에서 UTF-8 코드 페이지를 사용하여 UTF-8 지원을 사용하도록 설정할 수 있습니다. 자세한 내용은 의 UTF-8 지원 섹션을 setlocale참조하세요.

참고 항목

C 런타임 라이브러리 참조
_get_current_locale
setlocale, _wsetlocale
_create_locale, _wcreate_locale
언어 문자열
국가/지역 문자열