Delen via


Landinstellingen en codepagina's

Een landinstellings-id weerspiegelt de lokale conventies en taal voor een bepaalde geografische regio. Een bepaalde taal kan in meer dan één land/regio worden gesproken; Portugees wordt bijvoorbeeld gesproken in Brazilië en in Portugal. Een land/regio kan daarentegen meer dan één officiële taal hebben. Canada heeft bijvoorbeeld twee talen: Engels en Frans. Canada heeft dus twee verschillende regio's: Canadian-English en Canadees-Frans. Sommige landinstellingenafhankelijke categorieën bevatten de opmaak van datums en de weergave-indeling voor monetaire waarden.

De taal bepaalt de conventies voor tekst- en gegevensopmaak, terwijl het land/de regio de lokale conventies bepaalt. Elke taal heeft een unieke toewijzing, die wordt weergegeven door codepagina's, die tekens bevatten die niet in het alfabet staan (zoals leestekens of cijfers). Een codepagina is een tekenset en is gerelateerd aan de taal. Daarom is een locale een unieke combinatie van taal, land of regio en codepagina. De landinstelling en de codepagina-instelling kunnen tijdens runtime worden gewijzigd door de setlocale-functie aan te roepen.

Verschillende talen kunnen verschillende codepagina's gebruiken. De ANSI-codepagina 1252 wordt bijvoorbeeld gebruikt voor Engels en de meeste Europese talen, en de ANSI-codepagina 932 wordt gebruikt voor Japans Kanji. Vrijwel alle codepagina's delen de ASCII-tekenset voor de laagste 128 tekens (0x00 tot 0x7F).

Elke codepagina met één byte kan worden weergegeven in een tabel (met 256 vermeldingen) als een toewijzing van bytewaarden aan tekens (inclusief getallen en leestekens) of glyphs. Elke pagina met meerderebyte-code kan ook worden weergegeven als een zeer grote tabel (met 64.000 vermeldingen) van dubbele bytewaarden voor tekens. In de praktijk wordt het echter meestal weergegeven als een tabel voor de eerste 256 tekens (enkelbyte) en als reeksen voor de dubbele bytewaarden.

Zie Codepagina's voor meer informatie over codepagina's.

De C-runtimebibliotheek heeft twee typen interne codepagina's: landinstelling en multibyte. U kunt de huidige codepagina wijzigen tijdens het uitvoeren van het programma (zie de documentatie voor de functies setlocale en _setmbcp ). Bovendien kan de runtimebibliotheek de waarde van de codepagina van het besturingssysteem verkrijgen en gebruiken, die constant is voor de duur van de uitvoering van het programma.

Wanneer de codepagina van de landinstelling wordt gewijzigd, verandert het gedrag van de functies die afhankelijk zijn van de landinstelling zoals bepaald door de gekozen codepagina. Standaard beginnen alle landinstellingenafhankelijke functies met een landinstellingscodepagina die uniek is voor de landinstelling C. U kunt de interne landinstellingscodepagina (evenals andere landinstellingenspecifieke eigenschappen) wijzigen door de functie aan te setlocale roepen. Met een aanroep van setlocale(LC_ALL, "") wordt de landinstelling ingesteld op de landinstelling van de gebruiker van het besturingssysteem.

Wanneer de multibyte codepagina verandert, past het gedrag van de multibyte-functies zich aan zoals gedicteerd door de gekozen codepagina. Standaard beginnen alle multibyte-functies met het uitvoeren van een pagina met meerderebyte-code die overeenkomt met de standaardcodepagina van het besturingssysteem. U kunt de interne multibyte-codepagina wijzigen door functie _setmbcp aan te roepen.

De C-runtimefunctie setlocale stelt in, wijzigt, of vraagt bepaalde of alle locale-informatie van het huidige programma op. De _wsetlocale routine is een brede versie van setlocale; de argumenten en retourwaarden zijn _wsetlocale tekenreeksen met brede tekens.

Zie ook

Unicode en MBCS
Voordelen van draagbaarheid van tekenset