当前位置: 技术问答>linux和unix
qt编程问题:读取中文文档!
来源: 互联网 发布时间:2015-04-30
本文导语: 我用qt实现对一个文件的读取操作,但文件中只能读取英文部分,中文、日文部分都不能显示在multiLineEdit中。源程序如下: medit=new QMultiLineEdit(this); medit->setGeometry(10,10,460,380); medit->setReadOnly(TRUE); QFile...
我用qt实现对一个文件的读取操作,但文件中只能读取英文部分,中文、日文部分都不能显示在multiLineEdit中。源程序如下:
medit=new QMultiLineEdit(this);
medit->setGeometry(10,10,460,380);
medit->setReadOnly(TRUE);
QFile myFile("test.txt");
myFile.open(IO_ReadOnly);
QTextStream myStream(&myFile);
QString myString;
while(myStream.atEnd()==0)
{
myString=myStream.readLine();
medit->insertLine(myString);
}
myFile.close();
请知道的高手指点一下怎样实现对各种字符的读取和显示。有资料显示用qDataStream,但我还不知怎用。
medit=new QMultiLineEdit(this);
medit->setGeometry(10,10,460,380);
medit->setReadOnly(TRUE);
QFile myFile("test.txt");
myFile.open(IO_ReadOnly);
QTextStream myStream(&myFile);
QString myString;
while(myStream.atEnd()==0)
{
myString=myStream.readLine();
medit->insertLine(myString);
}
myFile.close();
请知道的高手指点一下怎样实现对各种字符的读取和显示。有资料显示用qDataStream,但我还不知怎用。
|
没有选择合适的codec进行编码转换
Qt以Unicode作为内部编码
将你读取得内容转换为相应的Unicode编码就可以了
例如GBK码中文的显示:
QTextCodec *codec = QTextCodec::codecForName("GBK");
if(codec)
{
新字符串 = codec->toUnicode(读取的字符串);
}
Qt以Unicode作为内部编码
将你读取得内容转换为相应的Unicode编码就可以了
例如GBK码中文的显示:
QTextCodec *codec = QTextCodec::codecForName("GBK");
if(codec)
{
新字符串 = codec->toUnicode(读取的字符串);
}