c++ - 使用 ofstream 写入 txt 文件时强制编码

标签 c++ windows encoding character-encoding

我使用 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/

相关文章:

c# - 为什么 GetIsNetworkAvailable() 总是返回 true?

ruby - 为什么格式转换库缺乏将输出写入文件的单一方法?

c++ - is_assignable 的可能实现

c++ - 关于引用传递的疑惑

c++ - 如何私有(private)继承基类的派生类,但实现基类的公共(public)接口(interface)?

encoding - 为什么 Go 在 base64 编码中使用位操作?

perl - 编码模块和引号

c++ - 生产代码中的 LRU 实现

windows - 在 Windows 上使用 Azure CLI 颁发证书链中的自签名证书

c++ - 如何在 Windows 中使用 eclipse 编译 dlib 示例?