?[Exercise: Put an invalid UTF-8 byte sequence into the string. (How?) What happens to the iterations of the loop?]我所做的是? ? const nihongo = "\xbd日本語\xbd"? ? for index, runeValue := range nihongo {? ? ? ? fmt.Printf("%x, %d\n", runeValue, index)? ? }輸出是fffd, 065e5, 1672c, 48a9e, 7fffd, 10我的問題是。utf-8編碼的字節(jié)如何bd格式化為單位代碼點(diǎn)u+fffd?
1 回答

小唯快跑啊
TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
此行為由Spec: For 語句指定:
對(duì)于帶有范圍子句的語句
對(duì)于字符串值,“range”子句從字節(jié)索引 0 開始迭代字符串中的 Unicode 代碼點(diǎn)。在連續(xù)迭代中,索引值將是連續(xù) UTF-8 編碼代碼點(diǎn)的第一個(gè)字節(jié)的索引字符串和類型為 的第二個(gè)值
rune
將是相應(yīng)代碼點(diǎn)的值。如果迭代遇到無效的 UTF-8 序列,則第二個(gè)值將為0xFFFD
Unicode 替換字符,并且下一次迭代將在字符串中前進(jìn)一個(gè)字節(jié)。
- 1 回答
- 0 關(guān)注
- 102 瀏覽
添加回答
舉報(bào)
0/150
提交
取消