Povzetek
Pri pretvorbi števil Unicode s celotno širino (U + FF10-U + FF19) v standardno polovično število števil (U +0030-U + 0039) med uporabo WideCharToMultiByte ne morete pretvoriti v Windows 95 in 98. Če želite pretvoriti znake polne širine na znake polovične širine, uporabite API LCMapString z zastavico LCMAP_HALFWIDTH.
Več informacij
Ker različica W tega API-ja ne deluje v sistemu Windows 95 in Windows 98 1, morate spremeniti znake polne širine iz Unicode na ustrezne nize DBCS in nato poklicati LCMapString za pretvorbo. Tukaj je vzorec, ki deluje s številkami Unicode polne širine v tradicionalnih Kitajščinah, poenostavljenih Kitajščinah, japonščini in korejščini:
#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);}
Če želite, da pretvorba deluje za Windows 95 in Windows 98, namestite eno od štirih kodnih strani (950 za tradicionalna kitajščina, 936 za poenostavljeno kitajščino, 932 za japonščino in 949 za korejščino) v sistemu in izrecno nastavite parametre kodne strani in območne ID-je v zgornjih klicih API.
Reference
Če želite več informacij o namestitvi kodne strani, kliknite to številko članka iz Microsoftove zbirke znanja:
164948 Namestitev kodne strani