如何在 Windows 平台上将 Unicode (UTF-8) 文件读入 wstring
(s)?
原文由 Abdelwahed 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在 Windows 平台上将 Unicode (UTF-8) 文件读入 wstring
(s)?
原文由 Abdelwahed 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答7.2k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
4 回答840 阅读
1 回答914 阅读
1 回答949 阅读
1 回答715 阅读
最近处理了所有的编码,以这种方式解决。最好使用 std::u32string,因为它在所有平台上都有稳定的大小,并且大多数字体都使用 utf-32 格式。 (文件仍应为 utf-8 格式)
对于这种在多平台上工作的方法,当您需要不完整地读取文件时,您应该只使用 getline 函数(记得写分隔符,没有分隔符函数返回异常 std::bad_cast)在行之间移动(或查找某个字符) ,可以通过 seekg 和 tellg 保存行位置值。并且不要在字符之间移动,只需使用 substr。
我发现在标准库中读取文件的所有其他方法都无法充分处理具有动态字符大小的文件。