我正在用西班牙语写一个程序。我想告诉用户已经加载了一个文件。用西班牙语:
ui->teLog->append("Se cargó el archivo: " + filename);
然而西班牙语部分输出为:
Secargóelarchivo:
我知道问题是编码(就像我需要告诉程序这是UTF8,我想)。 反正有吗?
答案 0 :(得分:4)
普通的QString构造函数假定您正在编写ASCII字符。如果您在这种情况下使用QString::fromUtf8()
,则应该有效:
ui->teLog->append(QString::fromUtf8("Se cargó el archivo: ") + filename);
此外:
QTextCodec::setCodecForCStrings( QTextCodec::codecForName("utf8") );
(有关详细信息,请参阅this answer)
答案 1 :(得分:2)
考虑使用latin1语言以简明英语编写所有消息,并使用Qt翻译功能将消息转换为西班牙语。请参阅http://qt-project.org/doc/qt-4.8/qobject.html#tr和http://qt-project.org/doc/qt-4.8/linguist-translators.html
这有几个好处: