Paramètres régionaux et pages de codes
Un ID de paramètres régionaux reflète les conventions locales et la langue d’une région géographique particulière. Une langue donnée peut être parlée dans plusieurs pays/régions ; par exemple, le portugais est parlé au Brésil ainsi qu’au Portugal. À l’inverse, un pays/région peut avoir plusieurs langues officielles. Par exemple, le Canada a deux langues : l’anglais et le Français. Ainsi, le Canada a deux paramètres régionaux distincts : l’anglais canadien et le Français canadien. Certaines catégories dépendent des paramètres régionaux, notamment la mise en forme des dates et le format d'affichage des valeurs monétaires.
La langue détermine les conventions de mise en forme de texte et de données, tandis que le pays/la région détermine les conventions locales. Chaque langue a un mappage unique, représenté par des pages de codes, qui inclut des caractères autres que ceux de l’alphabet (par exemple, des marques de ponctuation et des nombres). Une page de codes est un jeu de caractères et est liée à la langue. Par conséquent, les paramètres régionaux sont une combinaison unique de langue, de pays/région et de page de codes. Les paramètres régionaux et la page de codes peuvent être modifiés au moment de l’exécution en appelant la fonction setlocale .
Différentes langues peuvent utiliser différentes pages de codes. Par exemple, la page de codes ANSI 1252 est utilisée pour l’anglais et la plupart des langues européennes, et la page de codes ANSI 932 est utilisée pour le kanji japonais. Pratiquement toutes les pages de codes partagent le jeu de caractères ASCII pour les 128 caractères les plus bas (0x00 à 0x7F).
Toute page de codes sur un octet peut être représentée dans une table (avec 256 entrées) comme mappage de valeurs d’octets à des caractères (y compris des nombres et des marques de ponctuation) ou des glyphes. Toute page de codes multioctets peut également être représentée sous la forme d’une table très volumineuse (avec des entrées de 64 Ko) de valeurs de double octet en caractères. Toutefois, dans la pratique, il est généralement représenté sous la forme d’une table pour les 256 premiers caractères (sur un octet) et comme plages pour les valeurs de double octet.
Pour plus d’informations sur les pages de code, consultez Code Pages.
La bibliothèque runtime C a deux types de pages de code internes : paramètres régionaux et multioctets. Vous pouvez modifier la page de codes actuelle pendant l’exécution du programme (consultez la documentation relative aux fonctions setlocale et _setmbcp ). En outre, la bibliothèque d’exécution peut obtenir et utiliser la valeur de la page de codes du système d’exploitation, constante pour la durée de l’exécution du programme.
Lorsque la page de codes de paramètres régionaux change, le comportement de l’ensemble de fonctions dépendant des paramètres régionaux est modifié par la page de codes choisie. Par défaut, toutes les fonctions dépendantes des paramètres régionaux commencent à s’exécuter avec une page de codes de paramètres régionaux unique aux paramètres régionaux « C ». Vous pouvez modifier la page de codes des paramètres régionaux internes (ainsi que d’autres propriétés spécifiques aux paramètres régionaux) en appelant la setlocale
fonction. Un appel à setlocale
(LC_ALL, « ») définit les paramètres régionaux à celui indiqué par les paramètres régionaux de l’utilisateur du système d’exploitation.
De même, lorsque la page de codes multioctets change, le comportement des fonctions multioctets est modifié par la page de codes choisie. Par défaut, toutes les fonctions multioctets commencent à s’exécuter avec une page de codes multioctets correspondant à la page de codes par défaut du système d’exploitation. Vous pouvez modifier la page de codes multioctets interne en appelant la _setmbcp
fonction.
La fonction setlocale
runtime C définit, modifie ou interroge certaines ou toutes les informations de paramètres régionaux du programme actuel. La routine _wsetlocale est une version à caractères larges de setlocale
; les arguments et les valeurs de retour sont _wsetlocale
des chaînes à caractères larges.
Voir aussi
Unicode et MBCS
Avantages de la portabilité d’un jeu de caractères