【发布时间】:2022-01-25 14:09:03
【问题描述】:
我在这里阅读了几个答案,描述了如何将单个 16 位十六进制值转换为 Unicode 字符(ICU 中的UChar)。我不清楚的是如何将多个代码(2+ 十六进制字符串)转换为 3 位 Unicode 字符。比如我如何表示...
U+1F6A3 U+200D U+2642 U+FE0F ????♂️
作为单个 32 位 Unicode 字符。当输入是字符串 "U+1F6A3" "U+200D" "U+2642" "U+FE0F" 时(不是 16 位值,这些是文字字符串)。
【问题讨论】:
-
注意:Unicode 很复杂,Unicode 不仅仅是字符。你认为它是单个字符的许多事情可以采取许多coldepoints。 Unicode 没有设置限制(我认为有一个建议,大约 15 或 31 个将主要字符组合在一起)。然后你可以将许多“这样的东西”组合成一个字素(或字素簇)。您无法使用固定数量的字节。 [幸运的是字体和整形引擎应该可以解决这个问题]。