Zusammenfassung
Beim Konvertieren der Unicode-Zahlen mit normaler Breite (u + FF10-u + FF19) in standardmäßige Zahlen mit halber Breite (u +0030-u + 0039) bei Verwendung von WideCharToMultiByte schlägt die Konvertierung unter Windows 95 und 98 fehl. Verwenden Sie die API-LCMapString mit Flag LCMAP_HALFWIDTH, um die Zeichen in voller Breite in Zeichen mit halber Breite umzuwandeln.
Weitere Informationen
Da die W-Version dieser API unter Windows 95 nicht funktioniert, muss Windows 98 1 die Zeichen in voller Breite aus Unicode in geeignete DBCS-Zeichenfolgen konvertieren und dann LCMapString aufrufen, um die Konvertierung durchführen zu können. Im folgenden finden Sie ein Beispiel für die Verwendung von Unicode-Zahlen in normaler Breite in traditionellem Chinesisch, vereinfachtem Chinesisch, Japanisch und Koreanisch:
#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);}
Wenn Sie die Konvertierung für Windows 95 und Windows 98 vornehmen möchten, installieren Sie eine der vier Codepages (950 für traditionelles Chinesisch, 936 für vereinfachtes Chinesisch, 932 für Japanisch und 949 für Koreanisch) auf dem System, und legen Sie die Code Page-und Gebietsschema-ID-Parameter in den obigen API-aufrufen explizit fest.
Informationsquellen
Wenn Sie weitere Informationen zum Installieren einer Codepage wünschen, klicken Sie auf die folgende Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
164948 So installieren Sie eine Codepage