我寫一些代碼,必須閱讀UTF-8編碼的文本文件,並將它們發送到OpenGL的似乎是正確的。檢查字符串時,我得到「無效的UTF-8的錯誤」,但是當我使用std ::法院
也在使用這是我從這個網站下載庫:http://utfcpp.sourceforge.net/
當我寫下這我可以顯示在OpenGL窗口右邊的圖像:
std::string somestring = "abcçdefgğh";
//字符串轉換爲UTF32編碼.. //我也在程序啓動時設置本地。
但是,當我從文件中讀取UTF-8編碼的字符串:
- 庫警告我關於字符串已經不是一個合法的UTF編碼
- 我不能發送「讀取文件」串到OpenGL。它崩潰。
- 但我仍然可以使用std ::法院因我從文件中讀取(它看起來右)的字符串。
我用這個代碼讀取文件:
void something(){
std::ifstream ifs("words.xml");
std::string readd;
if(ifs.good()){
while(!ifs.eof()){
std::getline(ifs, readd);
// do something..
}
}
}
現在的問題是:
如果是從文件中讀取的字符串是不正確的,它是如何看如預期當我檢查它與std :: cout?
如何我能得到這個問題解決了嗎?
感謝提前:)
您的編譯器是否支持utf8中的源文件?你還需要通過在'u8'前面加上前綴來確保你的字符串是utf8。 – KitsuneYMG
感謝您的回覆:)我正在使用MinGW,源文件是utf8編碼的。因此,似乎MinGW支持它:)即使我不使用u8前綴,它不會導致問題,因爲源是utf 8編碼(或者可能是別的東西,它沒有錯誤)。 – gokaysatir