从文件中读取UTF-8编码文本时遇到一些问题。我的版本只读取ASCII字符。
#include <QtCore>
int main()
{
QFile file("s.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
return -1;
}
QTextStream in(&file);
while(!in.atEnd())
{
QString line = in.readLine();
qDebug() << line;
}
}
s.txt:
jąkać się
ślimak
śnieżyca
输出:
"jka si"
"limak"
"nieyca"
我应该使用什么?
答案 0 :(得分:20)
in.setCodec("UTF-8");
答案 1 :(得分:6)
你应该这样做:
QTextStream in(&file);
in.setCodec("UTF-8"); // change the file codec to UTF-8.
while(!in.atEnd())
{
QString line = in.readLine();
qDebug() << line.toLocal8Bit(); // convert to locale multi-byte string
}
答案 2 :(得分:1)
使用fileTree()
阅读XML文件时,我也有files()
。我在阅读文件之前通过调用它来修复它:
????