我正在使用以UTF-8编码的Wikipedia XML转储。现在,我正在读取所有内容作为std :: string,所以当我std :: cout到屏幕时,外来字符显示为乱码。
实际的解析过程只查找ASCII字符,但是当我将解析后的文件写入磁盘时,我想保留外来字符。换句话说,我希望输出具有与输入相同的编码。
使用std :: string是否可以,或者我将不得不使用像ICU这样的东西?我看过的图书馆看起来过于复杂。我可以用它来快速做到这一点吗?
答案 0 :(得分:1)
您没有打破文本和非ascii字符是您的安全。您可以使用 std :: string没有问题。
我的意思是当你没有将XML的内容与试图做分裂字母或单词等事情相关联时,尝试制作大写文本等,你没有任何问题。
答案 1 :(得分:1)
UTF-8是XML文档的默认编码。只需将其写入您的文件即可。将它转换为Unicode并再次返回是没有意义的。如果意外地将其倾倒在屏幕上,请避开你的目光: - )
删除像'{'这样的ASCII字符不会导致问题。 UTF-8的设计使得多字节字符中的字节不在0-127范围内,因此不能与ASCII字符混淆。