Загальні відомості
Під час перетворення чисел у кодуванні Юнікод (U + FF10-U + FF19) на стандартні напівширинні числа (у +0030-U + 0039) під час використання WideCharToMultiByte це не зробить перетворення в ОС Windows 95 і 98. Слід використовувати API LCMapString з позначкою LCMAP_HALFWIDTH, щоб перетворити символи повноширинної на половинні символи.
Додаткові відомості
Оскільки версія цього API не працює в ОС Windows 95 і Windows 98 1, потрібно перетворити символи з повноширинними символами Юнікод на відповідні ДВОБАЙТНІ рядки, а потім зателефонувати на LCMapString, щоб виконати перетворення. Нижче наведено зразок роботи з повноширинними номерами Юнікод у традиційній китайській, спрощеній китайській, японській та корейській мовах:
#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);}
Щоб перетворити роботу в ОС Windows 95 і Windows 98, інсталюйте один із чотирьох кодів (950 для традиційної китайської мови, 936 для спрощеної китайської мови, 932 для японської та 949 для корейської) у системі та явно настройте параметри коду та параметрів локалізації в зазначених вище дзвінках API.
Посилання
Щоб отримати докладні відомості про інсталяцію кодової сторінки, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:
164948 Інсталяція кодової сторінки