Go Wiki: Go 字符串
字符串不强制要求是 UTF-8 编码。Go 源代码必须是 UTF-8 编码。两者之间有一个复杂的路径。
简而言之,有三种字符串。它们是:
- 词法分析成字符串字面量的源代码子串。
- 字符串字面量。
- 字符串类型的值。
只有第一种字符串被要求是 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 的一部分。