qt默认的编码是unicode,它不能直接显示中文,因为中文的编码有多种,比如GBK、GB2312、GB18030等。所以需要使用一些方法来转换编码或者设置环境来解决中文显示的问题。根据搜索结果,我找到了以下几种方法:

使用QString::fromLocal8Bit方法,它可以把本地编码(比如GBK)转换成unicode编码,并返回一个QString对象。例如1:

ui->label->setText(QString::fromLocal8Bit("你好"));

使用QTextCodec类,它可以设置全局或者局部的字符集编码,并提供一些静态方法来转换编码。例如2:

// 设置全局字符集为UTF-8

QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

// 转换本地字符集为UTF-8

QTextCodec *codec = QTextCodec::codecForName("GBK");

QString str = codec->toUnicode("你好");

使用QStringLiteral宏,它可以把字符串字面量转换成一个QString对象,并且在编译时就完成了转换,所以效率更高。例如3:

ui->label->setText(QStringLiteral("你好"));

在.cpp文件中加入#pragma execution_character_set(“utf-8”)指令,它可以告诉编译器使用utf-8编码来处理源文件中的字符串字面量。例如4:

#pragma execution_character_set("utf-8")

...

ui->label->setText("你好");

好文链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。