亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 utf-8 編碼字節 \xbd 在 for range 循環中被格式化為 unicode

為什么 utf-8 編碼字節 \xbd 在 for range 循環中被格式化為 unicode

Go
SMILET 2023-08-07 14:32:55
?[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編碼的字節如何bd格式化為單位代碼點u+fffd?
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

此行為由Spec: For 語句指定:

對于帶有范圍子句的語句

對于字符串值,“range”子句從字節索引 0 開始迭代字符串中的 Unicode 代碼點。在連續迭代中,索引值將是連續 UTF-8 編碼代碼點的第一個字節的索引字符串和類型為 的第二個值rune將是相應代碼點的值。如果迭代遇到無效的 UTF-8 序列,則第二個值將為0xFFFDUnicode 替換字符,并且下一次迭代將在字符串中前進一個字節。


查看完整回答
反對 回復 2023-08-07
  • 1 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號