首页 > 解决方案 > 在 Qt 中,如何将 Unicode 代码点 U+1F64B 转换为包含其等效字符“”的 QString?

问题描述

背景:

我正在制作一个哈希,它允许您通过向它提供一个包含其字符的 QString 来查找您在下面看到的描述。

字符映射示例

我得到了相关数据的完整列表,如下所示:

QHash<QString, QString> lookupCharacterDescription;
...
lookupCharacterDescription.insert("003F","QUESTION MARK");
lookupCharacterDescription.insert("0040","COMMERCIAL AT");
lookupCharacterDescription.insert("0041","LATIN CAPITAL LETTER A");
lookupCharacterDescription.insert("0042","LATIN CAPITAL LETTER B");
...
lookupCharacterDescription.insert("1F648","SEE-NO-EVIL MONKEY");
lookupCharacterDescription.insert("1F649","HEAR-NO-EVIL MONKEY");
lookupCharacterDescription.insert("1F64A","SPEAK-NO-EVIL MONKEY");
lookupCharacterDescription.insert("1F64B","HAPPY PERSON RAISING ONE HAND");
...
lookupCharacterDescription.insert("FFFD","REPLACEMENT CHARACTER");
lookupCharacterDescription.insert("FFFE","<not a character>");
lookupCharacterDescription.insert("FFFF","<not a character>");
lookupCharacterDescription.insert("FFFFE","<not a character>");
lookupCharacterDescription.insert("FFFFF","<not a character>");

现在显然"1F64B"需要在这里包裹一些东西。我曾尝试过0x1F64B使用 QChar 之类的东西,但老实说,我在这里的黑暗中摸索着。我可以让它与拉丁字母等较低的值一起使用,但它在 5 个字符地址时失败。

问题:

标签: c++qtunicodeqstringqchar

解决方案



推荐阅读