【问题标题】:QTextStream accentuation codificationQTextStream 重音编码
【发布时间】:2013-08-25 01:25:14
【问题描述】:

我使用 Qt5.1 学习 Qt,但我在重读方面遇到了编码问题。我用葡萄牙语编写带有输出的程序,并且总是必须使用重音符号。该问题可以用以下代码演示:

\#include < QDebug>

\#include < QTextStream>

\#include < QString>

int main(){

  QTextStream out(stdout); 

  qDebug() << "Olá Mundo!"; 

  out << QString("Olá Mundo!") << endl;

  out << "Olá Mundo!" << endl;
}
  • “Olá Mundo”是葡萄牙语的 Hello World。

输出是:

Olá Mundo!

Olá Mundo!

Olá Mundo!

这第三个“Olá Mundo”是错误的。我总是必须使用 QString 正确打印输出,或者有什么方法可以正确打印最后一行(没有 Qstring 声明)?以及为什么 qDebug 显示正确?

【问题讨论】:

    标签: c++ qt qstring qtextstream


    【解决方案1】:

    您可以将输出的编解码器设置为 ISO 8859-1 (out.setCodec("ISO 8859-1"))。 然后你可以写out &lt;&lt; "Olá Mundo!" &lt;&lt; endl; 但是out &lt;&lt; QString("Olá Mundo!") &lt;&lt; endl; 将不再起作用。这只是因为 QTextStream operator

    qDebug 在内部将字符串转换为 UTF-8。这就是为什么你可以写qDebug() &lt;&lt; "Olá Mundo!";

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 1970-01-01
      • 2011-11-29
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多