Riepilogo
Quando si converte i numeri Unicode a larghezza intera (U + FF10-U + FF19) in numeri di mezza larghezza standard (U +0030-U + 0039) durante l'uso di WideCharToMultiByte, non riesce a eseguire la conversione in Windows 95 e 98. Uno dovrebbe usare l'API LCMapString con flag LCMAP_HALFWIDTH per convertire i caratteri a larghezza intera in caratteri di mezza larghezza.
Ulteriori informazioni
Poiché la versione W di questa API non funziona in Windows 95 e Windows 98 1 deve convertire i caratteri a larghezza intera da Unicode in stringhe DBCS appropriate e quindi chiamare LCMapString per eseguire la conversione. Ecco un esempio di utilizzo di numeri Unicode a larghezza intera in cinese tradizionale, cinese semplificato, giapponese e coreano:
#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);}
Per fare in modo che la conversione funzioni per Windows 95 e Windows 98, installare una delle quattro tabelle codici (950 per il cinese tradizionale, 936 per il cinese semplificato, 932 per il giapponese e 949 per il coreano) nel sistema e impostare esplicitamente la tabella codici e i parametri degli ID delle impostazioni locali nelle chiamate API precedenti.
Riferimenti
Per altre informazioni sull'installazione di una tabella codici, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:
164948 Come installare una tabella codici