Sdílet prostřednictvím


Národní prostředí a kódové stránky

ID národního prostředí odráží místní konvence a jazyk pro konkrétní geografickou oblast. Daný jazyk může být používán ve více než jedné zemi nebo oblasti. Například portugalsky se hovoří v Brazílii stejně jako v Portugalsku. Naopak země nebo oblast může používat více než jeden úřední jazyk. Například Kanada používá dva jazyky: angličtinu a francouzštinu. Kanada má tedy dvě odlišná národní prostředí: kanadské s angličtinou a kanadské s francouzštinou. Ke kategoriím závislým na národním prostředí patří formátování dat nebo zobrazovací formát pro peněžní hodnoty.

Jazyk určuje konvence formátování textu a data, zatímco země nebo oblast určuje místní konvence. Každý jazyk má jedinečné mapování reprezentované znakovými stránkami, které obsahují jiné znaky než v abecedě (například interpunkční znaménka a čísla). Znaková stránka je znaková sada a souvisí s jazykem. Národní prostředí je jedinečná kombinace jazyka, země/oblasti 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 můžou používat různé znakové stránky. Například znaková stránka ANSI 1252 se používá pro angličtinu a většinu evropských jazyků a znakovou stránku ANSI 932 se používá pro japonštinu Kanji. Prakticky všechny znakové stránky sdílejí znakovou sadu ASCII pro nejnižších 128 znaků (0x00 na 0x7F).

Libovolnou jednobajtů znakovou stránku lze znázornit v tabulce (s 256 položkami) jako mapování bajtů na znaky (včetně čísel a interpunkčních značek) nebo glyfů. Libovolnou vícebajtovou znakovou stránku lze také znázornit jako velmi velkou tabulku (s 64 tisíci položkami) dvoubajtových hodnot na znaky. V praxi je však obvykle reprezentována jako tabulka pro prvních 256 znaků (jednobatové) a jako oblasti pro dvojité bajtové hodnoty.

Další informace o kódových stránkách naleznete v tématu Stránky kódu.

Knihovny runtime jazyka C obsahují dva typy vnitřních znakových stránek: národní prostředí a vícebajtové. Aktuální znakovou stránku můžete změnit během provádění programu (viz dokumentace pro funkce setlocale a _setmbcp ). Knihovna runtime také může získat a použít hodnotu znakové stránky operačního systému, která je konstantní po dobu trvání provádění programu.

Když se změní znaková stránka národního prostředí, změní se chování sady funkcí závislých na národním prostředí, které určuje vybraná znaková stránka. Ve výchozím nastavení všechny funkce závislé na národním prostředí začínají s kódovou stránkou národního prostředí jedinečnou pro národní prostředí jazyka C. Vnitřní znakovou stránku národního prostředí (a další vlastnosti specifické pro národní prostředí) můžete změnit voláním setlocale funkce. Volání setlocale(LC_ALL, "") nastaví národní prostředí, které označuje národní prostředí uživatele operačního systému.

Podobně když se změní vícebajtová znaková stránka, chování vícebajtových funkcí se změní na to, které určuje vybraná znaková stránka. Ve výchozím nastavení všechny funkce s vícebajty začínají s vícebajtovou znakovou stránkou odpovídající výchozí znakové stránce operačního systému. Interní vícebajtovou znakovou stránku můžete změnit voláním _setmbcp funkce.

Funkce runtime jazyka setlocale C nastavuje, mění nebo dotazuje některé nebo všechny informace o národním prostředí aktuálního programu. Rutina _wsetlocale je širokoznační verze setlocale; argumenty a návratové hodnoty jsou řetězce širokého znaku _wsetlocale .

Viz také

Unicode a MBCS
Výhody přenositelnosti znakové sady