Kopsavilkums
Pārvēršot pilna platuma unikoda skaitļus (U + FF10-U + FF19) uz standarta pusplatuma numuriem (U +0030-U + 0039), vienlaikus izmantojot Funkcijas WideCharToMultiByte kļūme, nav jāveic konvertēšana operētājsistēmā Windows 95 un 98. Lai konvertētu pilna platuma rakstzīmes uz pusplatuma rakstzīmēm, jāizmanto API LCMapString ar karodziņa LCMAP_HALFWIDTH.
Papildinformācija
Tā kā šī API W versija nedarbojas operētājsistēmā Windows 95 un Windows 98 1, ir jāpārvērš pilna platuma rakstzīmes no unikoda uz pareizajām DBCS virknēm, un pēc tam jāmaina LCMapString, lai veiktu konvertēšanu. Šeit ir parauga darbs ar pilna platuma Unicode numuriem tradicionālajā ķīniešu, vienkāršotajā ķīniešu, japāņu un korejiešu valodā.
#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);}
Lai veiktu konvertēšanas darbību operētājsistēmā Windows 95 un Windows 98, instalējiet vienu no četrām kodu lappusēm (950 tradicionālajai ķīniešu valodai, 936 vienkāršotajai ķīniešu valodai, 932 for korejiešu un 949 for Korean) un precīzi iestata kodu lapu un lokalizācijas ID parametrus iepriekš minētajos API.
Atsauces
Lai iegūtu papildinformāciju par koda lapas instalēšanu, noklikšķiniet uz šī raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
164948 Kā instalēt koda lapu