2011-03-23 64 views
0

我正在使用由windows生成的xml。它包含版权字符。我必须把这个文件解析到我的C++ linux应用程序中。我必须使用mbstowcs函数,但是此函数无法解析看起来为:\ 302 \ 256的版权(R)字符。mbstowcs()不能用于特殊字符

有什么建议吗?

10x!

+4

你在调用'setlocale()'吗?有什么论点?你的'LANG'环境变量是什么设置的? – caf 2011-03-23 12:19:11

+1

你必须设置一个符合xml文件编码的语言环境 – smerlin 2011-03-23 13:35:53

回答

1

什么是文件的编码?是写成多字节字符串还是UTF-8? UTF-8不一定与多字节字符串相同,因此除非您能够读取UTF-8(对于C++流有点棘手),否则您可能必须自己进行转换。我正在使用开源解决方案(UTF8-CPP)来完成我的转换,并且它在Linux和Windows上运行良好。它允许你使用std :: string和std :: wstring来完成所有的转换工作(宽字符串到UTF-8,反之亦然)。

+0

'0302 0256'是'(R)'字符(八进制)的UTF-8编码,所以UTF-8似乎是OP 。 – caf 2011-03-24 00:38:52