C / C ++将编码设置为UNICODE ..如何将'ă'写入文件

时间:2015-04-26 09:44:36

标签: c++ c unicode encoding wchar-t

我正在尝试将特殊字符写入文件。具体来说就是'ă'字符,显然有 U + 0103 代码。

我不明白如何将编码设置为UNICODE。以及如何实际打印该角色。我尝试的所有内容,包括 wchar_t ,只打印'?'

如果我使用 wchar_t 从文本文件中读取,它会通过char读取char吗? 因为文本文件中的普通字符是1个字节而 wchar_t 是2/4。我需要阅读 char 并转换?

一些示例源代码将是apreciated ... 提前谢谢!

1 个答案:

答案 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 ++)。