我正在尝试使用特殊字符::
存储字符串qDebug() << "ÑABCgÓ";
输出:(这里我甚至无法输入正确的输出Ã&amp;Ã后丢失了一些垃圾) ÃABCgÃ
我怀疑有些UTF-8 / Latin1 / ASCII,但无法找到输出到控制台/文件的设置。我在代码中写的:“ÑABCgÓ”。
(Qt:4.8.5 / Ubunto 12.04 / C ++ 98)
答案 0 :(得分:3)
您可以使用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处理来确保。
答案 1 :(得分:1)
试试这个:
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForCStrings(codec);
qDebug() << "ÑABCgÓ";