Как се конвертират числа с пълна ширина в числа с половин ширина

Обобщена информация

Когато се конвертират Unicode числа с пълна ширина (U + FF10-U + FF19) към стандартни числа с половин ширина (U +0030-U + 0039), докато се използва WideCharToMultiByte, не може да се извърши преобразуването в Windows 95 и 98. Човек трябва да използва API LCMapString с флаг LCMAP_HALFWIDTH, за да конвертира знаците с пълна ширина на знаците с половин ширина.

Повече информация

Тъй като версията W на този API не работи в Windows 95 и Windows 98 1 трябва да конвертира знаците с пълна ширина от Unicode към подходящи DBCS низове и след това да се обадите на LCMapString, за да извършите преобразуването. Ето пример за работа с Unicode числа с пълна ширина в традиционен китайски, опростен китайски, японски и корейски:

#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:

Как да инсталирате кодова страница

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×