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 的一部分。