Go Wiki:GoStrings

不要求字符串为 UTF-8。要求 Go 源代码为 UTF-8。两者之间存在复杂路径。

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

  1. 分析为字符串文字的源代码子字符串。
  2. 字符串文字。
  3. 类型为 string 的值。

仅要求第一个为 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 的一部分。