我使用 ofstream 编写了一个 txt 文件,出于各种原因,该文件应该使用本地编码而不是 UTF8。 处理文件的机器与目标本地具有不同的本地化。
有没有办法在写入文件时强制编码?
问候,
宜兰
最佳答案
您可以在 ofstream
对象上调用 std::ios::imbue
来修改语言环境。这不会影响全局语言环境。
std::ofstream os("output.txt");
std::locale mylocale("");
os.imbue(mylocale);
os << 1.5f << std::endl;
os.close();
注意 std::locale
构造函数的参数,它依赖于实现。例如,德语语言环境可以是:
std::locale mylocale("de_DE");
或
std::locale mylocale("German");
关于c++ - 使用 ofstream 写入 txt 文件时强制编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7350070/