【问题标题】:How to specify a unicode character using QString?如何使用 QString 指定 unicode 字符?
【发布时间】:2011-09-28 17:01:25
【问题描述】:

如何使用 QString 按代码(例如“4FF0”)指定 unicode 字符?我试过QString s("\u4FF0");,但它只输出一个问号。知道怎么做吗?

编辑:

这样就可以了,但是有没有更直接的方法呢?

std::wstring str = L"\u4FF07";
QString s = QString::fromStdWString(str));

【问题讨论】:

    标签: qt unicode qstring


    【解决方案1】:

    如果直接指的是使用 Unicode 码位值,那么 QChar 可能就是:

    QString s = QChar(0x4FF0);
    

    【讨论】:

      【解决方案2】:

      显然 '\u' 仅适用于 UTF-8:

      QString s = QString::fromUtf8("\u4FF0");
      
      // Or with that at the start of your main function:
      QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
      ...
      QString s("\u4FF0");
      

      【讨论】:

      • 标准 C++ 是否支持 \u?
      • @Sergey 是的,至少从 C++98 开始就是这样。
      【解决方案3】:

      从 C++11 开始,您可以使用 UTF-8 字符串文字前缀 (u8):

      QString s(u8"\u4FF0");
      

      【讨论】:

        【解决方案4】:

        作为直接指针,试试 QString(QChar(0x4FF0));

        您需要确保使用正确的 utf-16 编码。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-19
          • 2013-12-25
          • 2016-03-06
          • 1970-01-01
          • 1970-01-01
          • 2021-08-18
          相关资源
          最近更新 更多