[英]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.