Ustawienia regionalne i strony kodowe

Identyfikator ustawień regionalnych odzwierciedla lokalne konwencje i język dla określonego regionu geograficznego. Dany język może być używany w więcej niż jednym kraju/regionie; na przykład portugalski jest używany w Brazylii, a także w Portugalii. Z drugiej strony kraj/region może mieć więcej niż jeden język oficjalny. Na przykład Kanada ma dwa języki: angielski i francuski. W związku z tym Kanada ma dwa odrębne ustawienia regionalne: kanadyjsko-angielski i kanadyjski-francuski. Niektóre kategorie zależne od ustawień regionalnych obejmują formatowanie dat i format wyświetlania wartości pieniężnych.

Język określa konwencje formatowania tekstu i danych, podczas gdy kraj/region określa konwencje lokalne. Każdy język ma unikatowe mapowanie reprezentowane przez strony kodowe, które zawiera znaki inne niż w alfabecie (takie jak znaki interpunkcyjne i liczby). Strona kodowa jest zestawem znaków i jest powiązana z językiem. W związku z tym ustawienia regionalne to unikatowa kombinacja języka, kraju/regionu i strony kodowej. Ustawienia ustawień regionalnych i strony kodu można zmienić w czasie wykonywania przez wywołanie funkcji setlocale .

Różne języki mogą używać różnych stron kodu. Na przykład strona kodowa ANSI 1252 jest używana dla języka angielskiego i większości języków europejskich, a strona kodowa ANSI 932 jest używana dla japońskiego Kanji. Praktycznie wszystkie strony kodu współdzielą zestaw znaków ASCII dla najniższych 128 znaków (0x00 do 0x7F).

Każda strona kodowa jedno bajtów może być reprezentowana w tabeli (z 256 wpisami) jako mapowanie wartości bajtów na znaki (w tym liczby i znaki interpunkcyjne) lub glyphs. Każda strona kodowa wielobajtowa może być również reprezentowana jako bardzo duża tabela (z wpisami 64K) wartości dwubajtowych do znaków. W praktyce jednak zazwyczaj jest reprezentowana jako tabela dla pierwszych 256 znaków (jednobajtowych) i jako zakresy dla wartości dwubajtowych.

Aby uzyskać więcej informacji na temat stron kodu, zobacz Strony kodu.

Biblioteka języka C w czasie wykonywania ma dwa typy stron kodu wewnętrznego: ustawienia regionalne i wielobajtowe. Bieżącą stronę kodu można zmienić podczas wykonywania programu (zobacz dokumentację funkcji setlocale i _setmbcp ). Ponadto biblioteka czasu wykonywania może uzyskać i użyć wartości strony kodu systemu operacyjnego, która jest stała na czas wykonywania programu.

Gdy strona kodu ustawień regionalnych ulegnie zmianie, zachowanie zależne od ustawień regionalnych zestawu funkcji zmieni się na dyktowane przez wybraną stronę kodową. Domyślnie wszystkie funkcje zależne od ustawień regionalnych rozpoczynają wykonywanie za pomocą strony kodu ustawień regionalnych unikatowych dla ustawień regionalnych "C". Możesz zmienić wewnętrzną stronę kodu ustawień regionalnych (a także inne właściwości specyficzne dla ustawień regionalnych), wywołując setlocale funkcję . Wywołanie metody setlocale(LC_ALL, "") ustawia ustawienia regionalne na określone przez ustawienia regionalne użytkownika systemu operacyjnego.

Podobnie, gdy strona kodu wielobajtowego ulegnie zmianie, zachowanie funkcji wielobajtowych zmieni się na dyktowane przez wybraną stronę kodu. Domyślnie wszystkie funkcje wielobajtowe rozpoczynają wykonywanie z wielobajtową stroną kodową odpowiadającą domyślnej stronie kodowej systemu operacyjnego. Wewnętrzną stronę kodu wielobajtowego można zmienić, wywołując _setmbcp funkcję.

Funkcja setlocale języka C ustawia, zmienia lub wykonuje zapytania dotyczące niektórych lub wszystkich informacji regionalnych bieżącego programu. Procedury _wsetlocale są wersją setlocaleszerokoznakową ; argumenty i zwracane wartości _wsetlocale są ciągami o szerokim znaku.

Zobacz też

Unicode i MBCS
Zalety przenośności zestawu znaków