Utf 8 字符串文字和字符串值之间的差异?

Utf 8 字符串文字和字符串值之间的差异?,utf-8,go,unicode,Utf 8,Go,Unicode,从博客帖子: 有些人认为围棋弦总是UTF-8,但他们不是:只有 字符串文字是UTF-8。正如我们在上一节中所展示的, 字符串值可以包含任意字节;正如我们在这篇文章中所展示的, 字符串文本始终包含UTF-8文本,只要它们没有 字节级转义 总之,字符串可以包含任意字节,但 由字符串文本构造,这些字节(几乎总是) UTF-8 你能给我一个不是字符串的字符串文本的例子吗 “字符串文字”、“字符串值”、“字符串文字不带字节级转义”之间有什么区别 希望这有助于: 正如32bitkid提到的:Go源代码中的以

从博客帖子:

有些人认为围棋弦总是UTF-8,但他们不是:只有 字符串文字是UTF-8。正如我们在上一节中所展示的, 字符串值可以包含任意字节;正如我们在这篇文章中所展示的, 字符串文本始终包含UTF-8文本,只要它们没有 字节级转义

总之,字符串可以包含任意字节,但 由字符串文本构造,这些字节(几乎总是) UTF-8

  • 你能给我一个不是字符串的字符串文本的例子吗
  • “字符串文字”“字符串值”“字符串文字不带字节级转义”之间有什么区别
  • 希望这有助于:

  • 正如32bitkid提到的:Go源代码中的以下字符是一个字符串文字,其值不是UTF-8编码的:
    “\xbd\xb2\x3d\xbc\x20\xe2\x8c\x98”

  • “字符串文字”的概念仅存在于Go源代码中,在已编译或甚至正在运行的程序中没有表示形式。Go源代码中的字符串文字写为
    “cat dog”
    ,如果您的字符串文字需要包含键盘丢失的内容(或编辑器无法显示),您可以使用类似于
    “cat\x07dog”
    的“字节级转义”。一旦编译了Go源代码,字符串文字的概念就消失了:只有字符串,它们有一些值。该值可以在代码运行期间计算,也可以由源代码中“字符串文字”生成的值组成


  • “字符串文字”是指字符串,而“数字文字”是指整数:“abc”是字符串文字,20是整数文字。两者可能具有不同的表示形式,例如“\x61bc”和0x14。但是一旦编译代码,int值是来自文本20还是0x14就没有区别了。字符串也一样。唯一的复杂之处:Go源代码始终是UTF-8。

    您链接到的博客文章有一个例子:
    const sample=“\xbd\xb2\x3d\xbc\x20\xe2\x8c\x98”
    @32bitkid这是字符串值,而不是字符串文字。前面的一段:“这是字符串文字[…]它使用\xNN符号来定义一个字符串常量,该常量包含一些特殊的字节值。“@32bitkid我的意思是hold
    字节值
    (我混淆了字符串文字和字符串值)所有字符串都由字节组成。当然,字节不是字符串,甚至[]字节也不是字符串(但可以很容易地转换)。也许你可以用另一种方式陈述你的问题?