在ubuntu上运行QT汉字乱码
在Ubuntu上运行QT程序出现汉字乱码的问题可能是由于缺少中文字体库导致的。您可以尝试以下解决方法:
-
安装中文字体库:
sudo apt-get install ttf-wqy-zenhei -
在QT程序的代码中添加设置字体的代码,例如:
QFont font("WenQuanYi Zen Hei", 12); app.setFont(font);这里使用了刚刚安装的文泉驿正黑字体作为默认字体,您也可以根据需要选择其他中文字体。
-
如果您的QT程序中使用了QLabel、QTextEdit等控件显示中文文本,可以尝试设置其文本编码为UTF-8,例如:
QLabel *label = new QLabel("中文文本"); label->setTextFormat(Qt::RichText); label->setText("<html><head/><body><p align=\"center\"><span style=\" font-size:12pt; font-weight:600; color:#000000;\">中文文本</span></p></body></html>");这样可以确保文本以UTF-8编码显示。
-
如果您的QT程序中使用了Qt Linguist进行国际化处理,可以在.ts文件中添加UTF-8编码声明,例如:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE TS>这样可以确保.ts文件以UTF-8编码保存。
-
如果您的QT程序中使用了数据库,可以在连接数据库时设置编码为UTF-8,例如:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("mydb"); db.setUserName("user"); db.setPassword("password"); db.setConnectOptions("MYSQL_OPT_RECONNECT=true;MYSQL_OPT_CHARSET_NAME=utf8");这样可以确保数据库中的数据以UTF-8编码读取和写入。
请根据您的具体情况尝试以上方法,希望能解决您的问题。
原文地址: https://www.cveoy.top/t/topic/iBiy 著作权归作者所有。请勿转载和采集!