gpt4 book ai didi

c++ - QTextStream 重音编码

转载 作者:太空宇宙 更新时间:2023-11-04 11:50:42 28 4
gpt4 key购买 nike

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

\#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”是错误的。我总是必须使用 QString 来正确打印输出,或者有什么方法可以使最后一行正确打印(没有 Qstring 声明)?为什么 qDebug 正确显示?

最佳答案

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

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

关于c++ - QTextStream 重音编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18424778/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com