Compatibilité de la langue en_US.UTF-8 dans Windows
Question
Dans le but d'assurer la compatibilité multiplateforme, un développeur cherche à comprendre comment implémenter la locale en_US.UTF-8 dans Windows, y compris la technique appropriée pour détecter sa présence.
Réponse
Historiquement, UTF-8 n'était pas pris en charge en tant que paramètres régionaux système dans Windows en raison de problèmes de compatibilité. Cependant, Microsoft a progressivement introduit la prise en charge des paramètres régionaux UTF-8 et recommande désormais d'utiliser les API ANSI (-A) plutôt que les versions Unicode (-W).
Activation des paramètres régionaux UTF-8
Windows fournit plusieurs méthodes pour activer la prise en charge des paramètres régionaux UTF-8 :
-
Option bêta (Windows 10 Build 17035 et supérieur) : Cochez la case "Utiliser Unicode UTF-8 pour la prise en charge des langues dans le monde entier" dans la boîte de dialogue Paramètres régionaux.
-
Utilisation de setlocale : Après avoir activé l'option bêta, utilisez setlocale(LC_ALL, ".utf8") pour définir la page de codes sur UTF-8.
-
Versions Windows plus récentes (17134 et supérieures) : Le mode UTF-8 est pris en charge par défaut. Utilisez setlocale comme décrit ci-dessus.
-
Déploiement local d'application ou liaison statique : Pour les versions Windows antérieures à 10, un déploiement local d'application ou une liaison statique est requis.
Détection de la présence des paramètres régionaux UTF-8
Pour détecter la présence des paramètres régionaux UTF-8, vous pouvez utiliser les approches suivantes :
- Vérifiez si les paramètres régionaux en_US.UTF-8 sont définis dans les paramètres régionaux.
- Interrogez la propriété ActiveCodePage de l'appxmanifest, le cas échéant.
- Compilez le programme avec les options /execution-charset:utf-8 ou /utf-8 (MSVC uniquement).
En suivant ces méthodes, vous pouvez vous assurer que votre code fonctionne de manière cohérente sur les systèmes Windows prenant en charge les paramètres régionaux en_US.UTF-8.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!