首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于高位置表情符号的rune文字

用于高位置表情符号的rune文字
EN

Stack Overflow用户
提问于 2021-03-02 12:43:35
回答 1查看 870关注 0票数 3

我们如何使用超出代码点U+265F的符文文字的表情符号?

a1 := '\u2665'

  • 这行得通

a2 := '\u1F3A8'

  • 这会导致错误无效字符文字,超过一个字符。

有没有一种方法可以将较高位置的表情符号表示为符文文字?

https://unicode.org/emoji/charts/full-emoji-list.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-02 12:47:52

您可以使用\U序列,然后是8十六进制数字,这是Unicode编码点的十六进制表示。这在规范:符文文字:中有详细说明。

将整数值表示为数字常量有四种方法:\x后面紧跟两个十六进制数字;\u后面紧跟四个十六进制数字;\U后面紧跟八个十六进制数字;以及一个普通反斜杠\,后面紧跟三个八进制数字。在每种情况下,文字的值都是由对应基中的数字表示的值。

例如:

代码语言:javascript
复制
a1 := '\u2665'
fmt.Printf("%c\n", a1)

a2 := '\U0001F3A8'
fmt.Printf("%c\n", a2)

哪个输出(在围棋游乐场上尝试):

代码语言:javascript
复制

注(回复@torek):

我相信Go作者选择了精确要求4和8十六进制数字,因为这允许使用完全相同的形式,完全相同的符文文字在解释字符串文字。例如,如果您想要一个包含2个runes的字符串,其中一个具有代码点0x0001F3A8,另一个符文是4,则可以如下所示:

代码语言:javascript
复制
s := "\U0001F3A84"

如果规范不需要精确的8十六进制数字,那么最后一个'4'是代码点的一部分还是字符串的单个符文,那么就必须将string分解为像"\U1F3A8" + "4"这样的级联。

规范:字符串文字:

解释字符串文字是双引号之间的字符序列,如在"bar"中。在引号中,除换行符和未转义双引号外,任何字符都可能出现。引号之间的文本形成文字的值,反斜杠在符文中被解释为反斜杠(除了\'是非法的,\"是合法的),也有同样的限制。三位八进制(\nnn)和两位十六进制(\xnn)转义表示结果字符串的单个字节;所有其他转义表示单个字符(可能是多字节)的UTF-8编码。因此,在字符串文本\377中,\xFF表示单个字节的值0xFF=255,而ÿ\u00FF\U000000FF\xc3\xbf表示字符U+00FF的UTF-8编码的两个字节0xc3 0xbf

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66439627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档