tra*_*nte 7 c++ windows unicode qt visual-studio-2012
在QT 5.4和C++中,我尝试解码具有unicode实体的字符串.
我有这个QString:
QString string = "file\u00d6\u00c7\u015e\u0130\u011e\u00dc\u0130\u00e7\u00f6\u015fi\u011f\u00fc\u0131.txt";
我想将此字符串转换为: fileÖÇ???Ü?çö?i?ü?.txt
我想QString的toUtf8和fromUtf8方法.还尝试逐个字符地解码它.
有没有办法使用Qt转换它?
Qt提供了一个名为QStringLiteral的宏,用于正确处理字符串文字.
这是一个完整的工作示例:
#include <QString>
#include <QDebug>
int main(void) {
   QString string = QStringLiteral("file\u00d6\u00c7\u015e\u0130\u011e\u00dc\u0130\u00e7\u00f6\u015fi\u011f\u00fc\u0131.txt");
   qDebug() << string;
   return 0;
}
如上面的注释所述,您需要打印到支持这些字符的控制台才能使用.
我刚刚测试了这段代码:
\n\nint main(int argc, char *argv[])\n{\n    QApplication a(argc, argv);\n    QString s = "file\\u00d6\\u00c7\\u015e\\u0130\\u011e\\u00dc\\u0130\\u00e7\\u00f6\\u015fi\\u011f\\u00fc\\u0131.txt";\n    qDebug() << s.length();  //Outputs: 22\n    qDebug() << s;           //Outputs: file\xc3\x96\xc3\x87\xc5\x9e\xc4\xb0\xc4\x9e\xc3\x9c\xc4\xb0\xc3\xa7\xc3\xb6\xc5\x9fi\xc4\x9f\xc3\xbc\xc4\xb1.txt\n    return a.exec();\n}\n这是 ubuntu 上的 Qt 5.4,所以看来您的问题仅与某些操作系统有关。
\n| 归档时间: | 
 | 
| 查看次数: | 1179 次 | 
| 最近记录: |