Résumé
Lorsque vous convertissez les nombres Unicode en pleine chasse (U + FF10-U + FF19) en nombres à demi-chasse standard (U +0030-U + 0039) lors de l’utilisation de WideCharToMultiByte, il ne parvient pas à effectuer la conversion sous Windows 95 et 98. Il est recommandé d’utiliser l’API LCMapString avec des indicateurs LCMAP_HALFWIDTH pour convertir les caractères à pleine chasse en caractères à demi-chasse.
Informations supplémentaires
Dans la mesure où la version W de cette API ne fonctionne pas sur Windows 95 et que Windows 98 1 a besoin de convertir les caractères à pleine chasse d’Unicode en chaînes DBCS correctes, puis appeler LCMapString pour effectuer la conversion. Vous trouverez ci-dessous un exemple d’utilisation de nombres Unicode à pleine chasse dans le chinois traditionnel, chinois simplifié, japonais et coréen :
#include <stdio.h>#include <tchar.h>#include <windows.h>void main(void){WCHAR T[2] = {65301, 0};TCHAR dbcs[3], conv[3];WideCharToMultiByte(CP_ACP, 0, T, -1, dbcs, sizeof(dbcs), NULL, NULL);int nRes = LCMapString(LOCALE_USER_DEFAULT, LCMAP_HALFWIDTH, dbcs,sizeof(dbcs),conv,sizeof(conv));printf("%s\n",conv);}
Pour faire en sorte que la conversion fonctionne pour Windows 95 et Windows 98, installez l’une des quatre pages de codes (950 pour le chinois traditionnel, 936 pour le chinois simplifié, 932 pour le japonais et 949 pour le coréen) sur le système et définissez explicitement les paramètres de page de code et d’ID de paramètres régionaux dans les appels d’API ci-dessus.
Références
Pour plus d’informations sur l’installation d’une page de code, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
164948 Comment installer une page de code