Qt字符编码转换

  1. toLatin1
  2. toLocal8Bit
  3. toUcs4
  4. toUtf8
  5. unicode
  6. utf16
  7. toStdString
  8. toStdU16String
  9. toStdU32String
  10. toStdWString

测试代码

void TestSet() {
QString tmp("你好,世界");
qDebug() << "tmp = " << tmp << "\n";
qDebug() << "tmp.toLocal8Bit() = " << tmp.toLocal8Bit() << "\n"; // utf-8编码16进制
qDebug() << "tmp.toLatin1() = " << tmp.toLatin1() << "\n"; // 不在编码集中
qDebug() << "tmp.toUcs4() = " << tmp.toUcs4() << "\n"; // unicode编码10进制,每个汉字均使用uint数字表示
qDebug() << "tmp.toUtf8() = " << tmp.toUtf8() << "\n"; // utf-8编码16进制
qDebug() << "tmp.utf16() = " << tmp.utf16() << "\n";
qDebug() << "tmp.unicode() = " << tmp.unicode() << "\n";
#ifndef UNICODE
qDebug() << "tmp.toStdString() = " << tmp.toStdString() << "\n";
#else
qDebug() << "tmp.toStdWString() = " << tmp.toStdWString() << "\n";
#endif
qDebug() << "tmp.toStdU16String() = " << tmp.toStdU16String() << "\n";
//qDebug() << "tmp.toStdU32String() = " << tmp.toStdU32String() << "\n";
}

结果输出

tmp = "你好,世界"
tmp.toLocal8Bit() = "\xE4\xBD\xA0\xE5\xA5\xBD\xEF\xBC\x8C\xE4\xB8\x96\xE7\x95\x8C"
tmp.toLatin1() = "?????"
tmp.toUcs4() = QVector(20320, 22909, 65292, 19990, 30028)
tmp.toUtf8() = "\xE4\xBD\xA0\xE5\xA5\xBD\xEF\xBC\x8C\xE4\xB8\x96\xE7\x95\x8C"
tmp.utf16() = 0x22b11050
tmp.unicode() = 0x22b11050
tmp.toStdWString() = "你好,世界"
tmp.toStdU16String() = "你好,世界"

参考

你好,世界的编码

posted @   flxx  阅读(170)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示