我正在尝试将特殊字符写入文件。具体来说就是'ă'字符,显然有 U + 0103 代码。
我不明白如何将编码设置为UNICODE。以及如何实际打印该角色。我尝试的所有内容,包括 wchar_t ,只打印'?'。
如果我使用 wchar_t 从文本文件中读取,它会通过char读取char吗? 因为文本文件中的普通字符是1个字节而 wchar_t 是2/4。我需要阅读 char 并转换?
一些示例源代码将是apreciated ... 提前谢谢!
答案 0 :(得分:1)
搜索时您需要的术语是“编码”以便从Unicode开始 - >从字节开始的字节和“解码” - > Unicode格式。通常,您必须知道字节具有哪种编码。
为了能够打印到控制台,您需要将Unicode字符串编码为控制台的编码。对于utf-8的Linux,在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 ++)。