Condividi tramite


Impostazioni locali e tabelle codici

Un ID delle impostazioni locali riflette le convenzioni e la lingua locali per una determinata area geografica. Una lingua può essere parlata in più di un paese, ad esempio il portoghese è parlato sia in Brasile che in Portogallo. Per contro, è possibile che in un paese siano parlate più lingue ufficiali. Ad esempio, il Canada ha due lingue: inglese e francese. Pertanto, il Canada ha due impostazioni locali distinte: canadese-inglese e canadese-francese. Alcune categorie dipendenti dalle impostazioni locali includono la formattazione delle date e il formato di visualizzazione dei valori monetari.

La lingua determina le convenzioni di formattazione del testo e dei dati, mentre il paese determina le convenzioni locali. Ogni linguaggio ha un mapping univoco, rappresentato dalle tabelle codici, che include caratteri diversi da quelli dell'alfabeto (ad esempio segni di punteggiatura e numeri). Una tabella codici è un set di caratteri ed è correlata alla lingua. Di conseguenza, le impostazioni locali sono una combinazione univoca di lingua, paese/area geografica e tabella codici. L'impostazione delle impostazioni locali e della tabella codici può essere modificata in fase di esecuzione chiamando la funzione setlocale .

Linguaggi diversi possono usare tabelle codici diverse. Ad esempio, la tabella codici ANSI 1252 viene usata per l'inglese e la maggior parte delle lingue europee e la tabella codici ANSI 932 viene usata per il giapponese Kanji. Praticamente tutte le tabelle codici condividono il set di caratteri ASCII per i 128 caratteri più bassi (0x00 da 0x7F).

Qualsiasi tabella codici a byte singolo può essere rappresentata in una tabella (con 256 voci) come mapping di valori di byte a caratteri (inclusi numeri e segni di punteggiatura) o glifi. Qualsiasi tabella codici multibyte può essere rappresentata anche come tabella molto grande (con voci da 64K) di valori a byte doppio ai caratteri. In pratica, tuttavia, è in genere rappresentato come tabella per i primi 256 caratteri (a byte singolo) e come intervalli per i valori a byte doppio.

Per altre informazioni sulle tabelle codici, vedere Code Pages.

La libreria di runtime C ha due tipi di tabelle codici interne: impostazioni locali e multibyte. È possibile modificare la tabella codici corrente durante l'esecuzione del programma (vedere la documentazione per le funzioni setlocale e _setmbcp ). Inoltre, la libreria di runtime potrebbe ottenere e usare il valore della tabella codici del sistema operativo, che è costante per la durata dell'esecuzione del programma.

Quando la tabella codici delle impostazioni locali cambia, il comportamento del set di funzioni dipendente dalle impostazioni locali viene modificato in base alla tabella codici scelta. Per impostazione predefinita, tutte le funzioni dipendenti dalle impostazioni locali iniziano l'esecuzione con una tabella codici delle impostazioni locali univoca per le impostazioni locali "C". È possibile modificare la tabella codici delle impostazioni locali interne (nonché altre proprietà specifiche delle impostazioni locali) chiamando la setlocale funzione . Una chiamata a setlocale(LC_ALL, "") imposta le impostazioni locali su quella indicata dalle impostazioni locali dell'utente del sistema operativo.

Analogamente, quando viene modificata la tabella codici multibyte, il comportamento delle funzioni multibyte cambia in base a quello determinato dalla tabella codici scelta. Per impostazione predefinita, tutte le funzioni multibyte iniziano l'esecuzione con una tabella codici multibyte corrispondente alla tabella codici predefinita del sistema operativo. È possibile modificare la tabella codici multibyte interna chiamando la _setmbcp funzione .

La funzione setlocale di runtime C imposta, modifica o esegue query su alcune o tutte le informazioni sulle impostazioni locali del programma corrente. La routine _wsetlocale è una versione a caratteri wide di setlocale. Gli argomenti e i valori restituiti di sono stringhe di _wsetlocale caratteri wide.

Vedi anche

Unicode e MBCS
Vantaggi della portabilità dei set di caratteri