【发布时间】:2014-01-05 12:26:26
【问题描述】:
有没有一种简单的方法可以将多字节 UTF8 数据(来自 Google Contacts API 通过https://www.google.com/m8/feeds/)转换为单字节?我知道扩展的 ASCII 集是非标准的,但是,例如,我的程序将在 MFC CListBox 中显示信息,很高兴将“E 急性”显示为 0xE9。我只需要它来处理一些类似的欧洲符号。我发现我可以使用 MultiByteToWideChar() 转换所有内容,但如果可能的话,我不想更改很多函数来接受宽字符。 谢谢。
【问题讨论】:
-
你想要 UTF8 转 ANSI 吗?
-
我想你可以做一个 MultiByteToWideChar 然后 WideCharToMultiByte 并相应地设置代码页参数。 YMMV 和您所说的那些欧洲符号可能不会在 Windows 的每个区域设置中以相同的方式呈现。使用 unicode(宽字符)将产生更一致的结果。
-
MBCS 对 MFC 的支持正在逐步淘汰。 Visual Studio 2013 不再附带对 MFC 的 MBCS 支持(尽管有单独的下载)。趁还有时间,最好更改您的代码以使用 Unicode。
标签: c++ mfc char google-contacts-api multibyte