方法一:使用QString的fromLocal8Bit()函数
- QFile txtfile(filePath); QString tmpStr; if(txtfile.open(QIODevice::ReadOnly)) { QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb2312"));//中文转码声明 while(!txtfile.atEnd()) { QByteArray arr = txtfile.readAll(); arr.replace(0x0B,0x0D); tmpStr = QString::fromLocal8Bit(arr, arr.length());//Window下的QByteArray转QString } } item->tableWidget()->item(row-1,column-1)->setText(tmpStr);
//use it
方法二:用QTextCodec的toUnicode方法来显示中文(在程序中试验本方法不适合) QTextCodec *codec = QTextCodec::codecForLocale(); QString a = codec->toUnicode("安师大手动");