【发布时间】:2018-12-29 10:18:51
【问题描述】:
如果我有一个类似“??????”的表情符号,在代码中是:
std::string emojiStr = "????";
在网站上,表格显示此表情符号的 unicode,如:“U+1F31E”
请教我如何从字符串“????”中获取此 unicode在 c++/cocos2dx 中?
【问题讨论】:
-
要完全理解这一点,您应该了解编码:The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)。如果
std::string(存储chars)可以使用代码点U+1F31E 显示您的表情符号,那么它可能会存储UTF-8 序列并且您的文本编辑器可能会正确解决此问题。 (这是两个“可能”。) -
假设我对 UTF-8 的理解是正确的,您可以分别为 UTF-8 编码的代码点 U+1F31E (????) 提供字节。字节的escape sequences 序列:
"\xf0\x9f\x8c\x9e"(根据UTF8 Encoder)。 -
std::string emojiStr = u8"????"应该使用任何现代 C++ 编译器正确存储 UTF8 字符串。也许您在屏幕上打印 Unicode 时遇到问题。