我正在尝试存储一个带有特殊字符的字符串::
qDebug() << "ÑABCgÓ";
输出:(这里我什至无法输入正确的输出,有些垃圾在 Ã 和 Ã 之后丢失了) �ABCg�
我怀疑是 UTF-8/Latin1/ASCII,但找不到输出到控制台/文件的设置。我在我的代码中写了什么:“ÑABCgÓ”。
(Qt:4.8.5/Ubuntu 12.04/C++98)
最佳答案
您可以使用 QString QString::fromUtf8(const char * str, int size = -1) [static]
正如下面的示例代码所示。这是 QString 存在的主要原因之一。
有关详细信息,请参阅文档:
http://qt-project.org/doc/qt-5.1/qtcore/qstring.html#fromUtf8
main.cpp
#include <QString>
#include <QDebug>
int main()
{
qDebug() << QString::fromUtf8("ÑABCgÓ");
return 0;
}
构建(根据您的场景定制)
g++ -fPIC -I/usr/include/qt -I/usr/include/qt/QtCore -lQt5Core main1000.cpp && ./a.out
输出
"ÑABCgÓ"
也就是说,根据您的语言环境,只需 qDebug() << "ÑABCgÓ";
可以像这里一样工作,但建议通过明确询问 UTF-8 处理来确保。
关于c++ - qDebug() (UTF - 8) 的错误输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19183895/