一、注释乱码
工具->选项->文本编辑器->宋体
二、QT中文有部分汉字编译报错问题
解决:
1.将对应的CPP文件用记事本打开另存为utf-8并替换;
此时编译通过,但汉字显示乱码
2.添加QTextcodec的两个语句运行是否还是乱码;
如果存在乱码,在对应的cpp头添加
##pragma execution_character_set("utf-8");
1》调用下面两个函数之一:
QTextCodec * textc = QTextCodec::codecForName("UTF-8");
QTextCodec * textc = QTextCodec::codecForName("GBK");
2》然后调用下面三个函数之一:
QTextCodec::setCodecForCStrings(textc);
主要用在用字符常量或者QByteArray构造QString对象时使用的默认编码方式
QTextCodec::setCodecForTr(textc);
QTextCodec::setCodecForLocale(textc);
3.用QTextStream文本流的方式操作
(1)
QString str;
tcpSocket->write(str.toUtf8().data);
(2)
QByteArray msg;
QDataStream in(&msg,QIODevice::WriteOnly);
in<<userName+tr(":Enter Chat Room");
if((length=tcpSocket->write(msg,msg.length()))!=msg.length())
{
return;
}
(3)方法三
QTextCodec *codec = QTextCodec::codecForName("GBK");
QString fileName = QFileDialog::getOpenFileName(this);
QFile file(fileName);
if(!file.open(QIODevice::ReadOnly))
return;
QByteArray content = file.readAll();
QString str = codec->toUnicode(content);
(4)方式四,解决在vs上的中文问题
#ifdef WIN32
#pragma execution_character_set("utf-8")
#endif
(5)方式五,解决QTextStream乱码问题
QTextStream stream(&file);
stream.setCodec("utf-8");//"utf-8",是必须小写