在 MFC 程序中显示之前,如何将(文本)文件从 UTF-8/ASCII 转换为 UTF-16? 因为 MFC 每个字符使用 16 位,而 Windows 上的大多数(文本)文件使用 UTF-8 或 ASCII。
最佳答案
简单的答案叫做MultiByteToWideChar和 WideCharToMultiByte做反向转换。还有 CW2A和 CA2W使用起来更简单一些。
但是,我强烈建议不要直接使用这些函数。手动处理字符缓冲区很痛苦,而且存在内存损坏或安全漏洞的风险。
最好使用基于 std::string 和/或迭代器的库。例如,utf8cpp .这个的优点是体积小、只有标题和多平台。
关于MFC 中的 C++ UTF-8/ASCII 到 UTF-16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58155934/