Národní prostředí a znakové stránky
ID národního prostředí se odráží v místních konvencích a jazyku pro určitou zeměpisnou oblast.Daný jazyk může být používaný v více než jedné zemi/oblasti; například portugalština se hovoří v Brazílii, jakož i Portugalsko.Naopak země může mít více než jeden úřední jazyk.Například Kanada má dva jazyky: angličtina a francouzština.Kanada má tedy dvě odlišné národní prostředí: Kanadská angličtina a Francouzština (Kanada).Některé kategorie závislé na národním prostředí obsahují formátování data nebo zobrazovací formát pro peněžní hodnoty.
Jazyk určí textu a dat formátovací konvence, zatímco země/oblast určí místní konvence.Každý jazyk má jedinečné mapování, reprezentované znakovými stránkami, která obsahují jiné znaky než ty v abecedě (například interpunkční znaménka a čísla).Znaková stránka je sada znaků a souvisí s jazykem.Jako takové národního prostředí je jedinečnou kombinací jazyka, země a znakové stránky.Nastavení národního prostředí a znakové stránky lze změnit za běhu, voláním funkce setlocale.
Různé jazyky mohou používat různé znakové stránky.Například ANSI znaková stránka 1252, se používá pro Angličtinu a většinu evropských jazyků a znaková stránka ANSI 932 se používá pro japonské písmo Kanji.Prakticky všechny znakové stránky sdílejí ASCII znakovou sadu pro nejnižších 128 znaků (0x00 do 0x7F).
Jakákoli jednobajtová znaková stránka může být reprezentována v tabulce (s 256 položkami) jako mapování bajt hodnot znaků (včetně čísel a interpunkčních znamének) nebo glyfů.Jakákoli vícebajtová znaková stránka může být také reprezentována jako velmi velká tabulka (s 64 kB položkami) dvoubajtových hodnot znaků.V praxi však jsou obvykle reprezentovány jako tabulka pro prvních 256 (jednobajtové) znaků a jako rozsahy pro dvoubajtové hodnoty.
Další informace o znakových stránkách naleznete v tématu Znakové stránky.
Běhová knihovna C obsahuje dva typy interních znakových stránek: národní prostředí a vícebajtové.Při provádění programu můžete změnit aktuální znakovou stránku (viz dokumentace k funkcím setlocale a _setmbcp).Běhová knihovna jazyka C může také získat a používat hodnotu znakové stránky operačního systému.V systému Windows 2000 je znaková stránka "výchozí systém ANSI" znakovou stránkou operačního systému.Tato znaková stránka je konstantou po dobu spuštění programu.
Jakmile se znaková stránka národního prostředí změní, chování funkcí závislých na sadě národního prostředí se změní podle zvolené znakové stránky.Ve výchozím nastavení se všechny závislé funkce začínají spouštět s jedinečnou znakovou stránkou národního prostředí s "C" národním prostředím.Můžete změnit vnitřní znakovou stránku národního prostředí (stejně jako jiné specifické vlastnosti pro dané národní prostředí), voláním funkce setlocale. Volání setlocale(LC_ALL, "") nastaví národní prostředí na to národní prostředí uživatele, které je označené operačním systémem.
Podobně, když se změní vícebajtová znaková stránka, chování vícebajtových funkcí se změní podle zvolené znakové stránky.ve výchozím nastavení se všechny vícebajtové funkce začínají spouštět s vícebajtovou znakovou stránkou, odpovídající výchozí znakové stránce operačního systému.Můžete změnit vnitřní vícebajtovou znakovou stránku, voláním funkce _setmbcp.
Běhová funkce jazyka C setlocale, nastaví, změní nebo dotáže některé nebo všechny informace o aktuálním národním prostředí programu. Rutina _wsetlocale je verzí širokého znaku setlocale; argumenty a vrácené hodnoty _wsetlocale jsou řetězci širokého znaku.