【发布时间】:2019-07-12 14:12:06
【问题描述】:
对于游戏,我需要处理扑克牌。我想利用Playing cards in Unicode,它基本上归结为U+1F0XY,其中X 设置颜色,Y 设置卡片表面。
我现在需要实现一个函数,该函数返回一个字符串,其中包含一个表示卡片的 Unicode 字符。我需要使用什么数据类型而不是占位符 unicode_char_t 来对 Unicode 字符进行数学运算?
std::string cardToUnicodeChar(uint8_t face, uint8_t color) {
unicode_char_t unicodeCharacter = 0x1F000 + (color << 4) + face;
return std::string(unicodeCharacter);
}
【问题讨论】:
-
std::string是一个 byte 字符串。 UTF-8 是 byte 编码的 Unicode。请改用 UTF-8 编码字符。 -
@Someprogrammerdude 您能否为我的问题中的代码提供一个示例(可能使用不同的类型而不是 std::string)来为我指明正确的方向?
-
ICU 是一个提供全面 Unicode 支持的库。您的特定平台可能已经提供了出色的 Unicode 支持。
-
@Eljay 您能否提供一个我的小函数 abvoe 的示例实现,使用 ICU 作为答案让我开始?