我正在尝试存储带有特殊字符的字符串::
qDebug() << "ÑABCgÓ";
输出:(在这里我什至无法输入正确的输出,在 Ã & Ã 之后缺少一些垃圾)ÃABCgÃ
我怀疑一些 UTF-8 / Latin1 / ASCII,但找不到输出到控制台 / 文件的设置。我在我的代码中写的是:“ÑABCgÓ”。
(Qt:4.8.5 / Ubunto 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
#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 处理来确保。
试试这个:
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForCStrings(codec);
qDebug() << "ÑABCgÓ";