首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTextStream重音编码

QTextStream重音编码
EN

Stack Overflow用户
提问于 2013-08-25 01:25:14
回答 1查看 507关注 0票数 1

我学习Qt,使用Qt5.1,我在重音方面有编码问题。我用葡萄牙语编写输出程序,并且总是要使用口音。这个问题可以在以下代码中演示:

代码语言:javascript
复制
\#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。

产出如下:

奥兰蒙多!

奥兰蒙多!

圣保罗!

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-25 01:51:46

您可以将out的编解码器设置为ISO8859-1 (out.setCodec("ISO 8859-1")).然后您可以编写out << "Olá Mundo!" << endl;,但是out << QString("Olá Mundo!") << endl;就不再起作用了。这仅仅是因为QTextStream operator<<(const * string)在ISO8859-1中需要字符串,而operator<<(const QString & string)是UTF-8中的QString。QTextStream的默认编解码器是UTF-8.

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18424778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档