我正在尝试将特殊字符写入文件。具体来说是'ă'字符,它显然具有U+0103代码。
我不明白如何将编码设置为 UNICODE。以及如何实际打印该字符。我尝试过的所有操作,包括 wchar_t 都仅打印 '?'。
如果我使用 wchar_t 读取文本文件,它会逐个字符地读取吗? 因为文本文件中的一个普通字符是1个字节,而wchar_t是2/4。我需要用 char 读取并转换吗?
一些示例源代码将不胜感激...... 提前致谢!
最佳答案
搜索时需要的术语是“编码”(从 Unicode -> 字节),以及“解码”(从字节 -> Unicode)。一般来说,您必须知道字节具有哪种编码。
为了能够打印到控制台,您需要将 Unicode 字符串编码为控制台的编码。对于 Linux 来说,它是 utf-8,而在 Windows 上它可能是一些无用的东西,比如 cp1252(可以更改)。
我建议在 C++ 中使用 Unicode 时查看 Boost.Locale ( http://www.boost.org/doc/libs/1_58_0/libs/locale/doc/html/index.html ) 或 ICU ( http://site.icu-project.org/ )(其他语言有更成熟/更容易使用 Unicode 功能,以防您没有锁定在 C++ 中) )。
关于c++ - C/C++ 将编码设置为 UNICODE.. 如何将 'ă' 写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29876035/