2012-08-01 71 views
0

我的Windows應用程序使用_wpopen調用系統命令。該命令產生一個UTF8響應,我試圖使用fgetws讀入wchar_t的緩衝區。問題是我緩衝區中的結果不正確。我的緩衝區包含12個字符,其中UTF8它應該只包含我使用Microsoft Visual Studio 2010閱讀UTF8從系統中C++的Windows

我已經獨立驗證該系統命令產生適當的輸出4.有可能是與字符寬度的問題。因此,讀取操作會使編碼混亂。該怎麼辦?謝謝!

回答

0

fgetws function預計輸入是要麼MBCS或取決於你是否打開文本或二進制模式的文件UTF-16。它不處理UTF-8。

相反,用fgets然後明確從UTF-8到你想使用的任何編碼轉換。