2011-03-23 76 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