[英]Why do I get error “'cout' in namespace 'std' does not name a type” when I use “using cout = std::cout;”?
[英]I get “Invalid utf 8 error” when checking string, but it seems correct when i use std::cout
我正在編寫一些必須讀取utf 8編碼的文本文件並將其發送到OpenGL的代碼。
還使用我從此站點下載的庫: http : //utfcpp.sourceforge.net/
當我寫下來時,我可以在OpenGL窗口上顯示正確的圖像:
std::string somestring = "abcçdefgğh";
//將字符串轉換為utf32編碼。.//我還在程序啟動時設置了local。
但是當我從文件中讀取utf8編碼的字符串時:
我使用以下代碼從文件中讀取:
void something(){
std::ifstream ifs("words.xml");
std::string readd;
if(ifs.good()){
while(!ifs.eof()){
std::getline(ifs, readd);
// do something..
}
}
}
現在的問題是:
如果從文件讀取的字符串不正確,當我使用std :: cout檢查它時,它的外觀如何?
我該如何解決這個問題?
提前致謝:)
您向其編寫輸出的shell可能會針對不了解的字符非常強大。 似乎並非所有使用的軟件都是。 但是,驗證字節序列是否為有效的UTF-8序列應該相對簡單:UTF-8編碼相對簡單:
根據這些規則,有兩件事可能會出錯並使UTF-8無效:
我沒有周圍的代碼可以指出哪里出了問題,但是編寫這樣的代碼應該很簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.