MFC 中的 C++ UTF-8/ASCII 到 UTF-16

标签 c++ utf-8 mfc ascii utf-16

在 MFC 程序中显示之前,如何将(文本)文件从 UTF-8/ASCII 转换为 UTF-16? 因为 MFC 每个字符使用 16 位,而 Windows 上的大多数(文本)文件使用 UTF-8 或 ASCII。

最佳答案

简单的答案叫做MultiByteToWideCharWideCharToMultiByte做反向转换。还有 CW2ACA2W使用起来更简单一些。

但是,我强烈建议不要直接使用这些函数。手动处理字符缓冲区很痛苦,而且存在内存损坏或安全漏洞的风险。

最好使用基于 std::string 和/或迭代器的库。例如,utf8cpp .这个的优点是体积小、只有标题和多平台。

关于MFC 中的 C++ UTF-8/ASCII 到 UTF-16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58155934/

相关文章:

c++ - 如何在 MFC 编辑器中对资源 ID 进行编辑以传播到代码?

c++ - Windows CE MessageBox 不显示 unicode 文本和图标透明度

c++ - 减少模拟器中 switch 语句的大小?

mysql - UTF-8 字符问题;我看到的不是我存储的

python - BeautifulSoup "encode("utf-8")

Python:Unicode 问题

c++ - CPP + 正则表达式来验证 URL

c++ - 了解通过 RInside 将 Armadillo 矩阵传递给 R 函数

c++ - 将字符串相互比较和 append 的问题c++

c++ - 如何通过引用或指针传递功能对象(仿函数)?