gpt4 book ai didi

c++ - UTF-8 兼容的 IOstreams

转载 作者:搜寻专家 更新时间:2023-10-31 00:19:36 26 4
gpt4 key购买 nike

GCC 的标准库或 Boost 或任何其他库是否实现了 ifstream 的 iostream 兼容版本?或 ofstream支持 UTF-8 编码(文件)流和 std::vector<wchar_t> 之间的转换或 std::wstring

最佳答案

C++11 的解决方案是将 UTF-8 流包装在适当的 wbuffer_convert

#include <fstream>
#include <string>
#include <codecvt>
int main()
{
std::ifstream utf8file("test.txt"); // if the file holds UTF-8 data
std::wbuffer_convert<std::codecvt_utf8<wchar_t>> conv(utf8file.rdbuf());
std::wistream ucsbuf(&conv);
std::wstring line;
getline(ucsbuf, line); // then line holds UCS2 or UCS4, depending on the OS
}

这适用于 Visual Studio 2010 和 clang++/libc++,但不幸的是,不适用于 GCC。

在这变得普遍之前,第三方库确实是最好的解决方案。

关于c++ - UTF-8 兼容的 IOstreams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7889032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com