使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

摘要

在使用 WideCharToMultiByte 将全角 Unicode 号码(U + FF10 + FF19)转换为标准的半角数字(U +0030-U + 0039)时,无法在 Windows 95 和98上执行转换。 应将 API LCMapString 与标志 LCMAP_HALFWIDTH 结合使用,将全角字符转换为半角字符。

更多信息

由于此 API 的 W 版本在 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),并在上述 API 调用中显式设置代码页和区域设置 ID 参数。

参考

有关安装代码页的详细信息,请单击下面的文章编号,查看 Microsoft 知识库中的文章:

164948 如何安装代码页

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×