gpt4 book ai didi

c++ - stdout 和 stderr 字符编码

转载 作者:太空狗 更新时间:2023-10-29 21:08:31 29 4
gpt4 key购买 nike

我在一个 C++ 字符串库上工作,它有 4 个主要的类来处理 ASCII、UTF8、UTF16、UTF32 字符串,每个类都有打印函数来格式化输入字符串并将结果打印到标准输出或标准错误。我的问题是我不知道这些流的默认字符编码是什么。

目前我的类(class)在 Windows 中运行,稍后我将添加对 Mac 和 Linux 的支持,所以如果您对这些流编码有所了解,我将不胜感激。

所以我的问题是:stdout 和 stderr 的默认编码是什么?我可以稍后更改该编码吗?如果可以,存储在那里的数据会怎样?

谢谢。

最佳答案

stdout 和 stderr 使用“C”语言环境。 “C”语言环境是中性的,在大多数系统中被翻译成当前用户的语言环境。您可以使用 setlocale 函数强制程序使用特定的语言环境:

// Set all categories and return "English_USA.1252"
setlocale( LC_ALL, "English" );
// Set only the LC_MONETARY category and return "French_France.1252"
setlocale( LC_MONETARY, "French" );
setlocale( LC_ALL, NULL );

支持的语言环境字符串是特定于系统和编译器的。只有“C”和“”需要被支持。

http://www.cplusplus.com/reference/clibrary/clocale/

关于c++ - stdout 和 stderr 字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2857157/

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