Go Wiki: Go 字符串

字符串强制要求是 UTF-8 编码。Go 源代码必须是 UTF-8 编码。两者之间有一个复杂的路径。

简而言之,有三种字符串。它们是:

  1. 词法分析成字符串字面量的源代码子串。
  2. 字符串字面量。
  3. 字符串类型的值。

只有第一种字符串被要求是 UTF-8 编码。第二种字符串在编写时被要求是 UTF-8 编码,但其内容以多种方式解释,并可能编码任意字节。第三种字符串可以包含任何字节。

尝试在

var s string = "\xFF語"

源代码子串:"\xFF語",UTF-8 编码。数据

22
5c
78
46
46
e8
aa
9e
22

字符串字面量:\xFF語(引号之间)。数据

5c
78
46
46
e8
aa
9e

字符串值(不可打印;这是一个 UTF-8 流)。数据

ff
e8
aa
9e

并且为了记录,字符(码点)

<erroneous byte FF, will appear as U+FFFD if you range over the string value>
語 U+8a9e

此内容是 Go Wiki 的一部分。