Преобразование полноширинных чисел в полуширинные

Аннотация

При преобразовании полных чисел Юникод (U + FF10-U + FF19) в стандартные полуширинные числа (U +0030-U + 0039) при использовании WideCharToMultiByte, она не может выполнить преобразование в Windows 95 и 98. Для преобразования полноширинных знаков в знаки половинной ширины в одном из них следует использовать API LCMapString с флагами LCMAP_HALFWIDTH.

Дополнительная информация

Поскольку версия W этого API не работает в Windows 95 и Windows 98 1, необходимо преобразовать полноширинные знаки из Юникода в соответствующие строки DBCS, а затем вызвать 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.

Ссылки

Чтобы получить дополнительные сведения об установке кодовой страницы, щелкните следующий номер статьи базы знаний Майкрософт:

Установка кодовой страницы

Нужна дополнительная помощь?

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×