我正在用西班牙语编写一个程序。我想告诉用户文件已加载。在西班牙语中是:
ui->teLog->append("Se cargó el archivo: " + filename);
然而,西班牙语部分被输出为:
Se cargó el 档案:
我知道问题出在编码上(我想我需要告诉程序这是 UTF8)。有没有办法做到这一点?
我正在用西班牙语编写一个程序。我想告诉用户文件已加载。在西班牙语中是:
ui->teLog->append("Se cargó el archivo: " + filename);
然而,西班牙语部分被输出为:
Se cargó el 档案:
我知道问题出在编码上(我想我需要告诉程序这是 UTF8)。有没有办法做到这一点?
普通的 QString 构造函数假定您正在编写 ASCII 字符。如果您QString::fromUtf8()
在这种情况下使用它应该可以工作:
ui->teLog->append(QString::fromUtf8("Se cargó el archivo: ") + filename);
还:
QTextCodec::setCodecForCStrings( QTextCodec::codecForName("utf8") );
(有关更多信息,请参阅此答案)
考虑使用 latin1 语言以简单的英语编写所有消息,并使用 Qt 翻译功能将消息转换为西班牙语。请参阅http://qt-project.org/doc/qt-4.8/qobject.html#tr和http://qt-project.org/doc/qt-4.8/linguist-translators.html
这有几个优点: