2

我正在用西班牙语编写一个程序。我想告诉用户文件已加载。在西班牙语中是:

ui->teLog->append("Se cargó el archivo: " + filename);

然而,西班牙语部分被输出为:

Se cargó el 档案:

我知道问题出在编码上(我想我需要告诉程序这是 UTF8)。有没有办法做到这一点?

4

2 回答 2

4

普通的 QString 构造函数假定您正在编写 ASCII 字符。如果您QString::fromUtf8()在这种情况下使用它应该可以工作:

ui->teLog->append(QString::fromUtf8("Se cargó el archivo: ") + filename);

还:

QTextCodec::setCodecForCStrings( QTextCodec::codecForName("utf8") );

(有关更多信息,请参阅此答案

于 2013-03-20T18:29:27.087 回答
2

考虑使用 latin1 语言以简单的英语编写所有消息,并使用 Qt 翻译功能将消息转换为西班牙语。请参阅http://qt-project.org/doc/qt-4.8/qobject.html#trhttp://qt-project.org/doc/qt-4.8/linguist-translators.html

这有几个优点:

  • 你的程序可以翻译成其他语言
  • 非西班牙语开发人员将能够更轻松地修改您的代码(假设每个开发人员都懂英语,只有一些人懂西班牙语)。
于 2013-03-20T23:56:50.423 回答