ch3: fix code path

This commit is contained in:
chai2010
2016-01-20 23:25:13 +08:00
parent 7fe7a309be
commit ca0f87fad9
5 changed files with 9 additions and 31 deletions

View File

@@ -115,7 +115,7 @@ for range s {
正如我們前面提到的文本字符串采用UTF8編碼隻是一種慣例但是對於循環的眞正字符串併不是一個慣例這是正確的。如果用於循環的字符串隻是一個普通的二進製數據或者是含有錯誤編碼的UTF8數據將會發送什麽呢
每一個UTF8字符解碼不管是顯式地調用utf8.DecodeRuneInString解碼或是在range循環中隱式地解碼如果遇到一個錯誤的UTF8編碼輸入將生成一個特别的Unicode字符'\uFFFD',在印刷中這個符號通常是一個黑色六角或鑽石形狀,里面包含一個白色的問號?。當程序遇到這樣的一個字符通常是一個危險信號説明輸入併不是一個完美沒有錯誤的UTF8字符串。
每一個UTF8字符解碼不管是顯式地調用utf8.DecodeRuneInString解碼或是在range循環中隱式地解碼如果遇到一個錯誤的UTF8編碼輸入將生成一個特别的Unicode字符'\uFFFD',在印刷中這個符號通常是一個黑色六角或鑽石形狀,里面包含一個白色的問號"<22>"。當程序遇到這樣的一個字符通常是一個危險信號説明輸入併不是一個完美沒有錯誤的UTF8字符串。
UTF8字符串作爲交換格式是非常方便的但是在程序內部采用rune序列可能更方便因爲rune大小一致支持數組索引和方便切割。
@@ -147,10 +147,5 @@ fmt.Println(string(0x4eac)) // "京"
如果對應碼點的字符是無效的,則用'\uFFFD'無效字符作爲替換:
```Go
fmt.Println(string(1234567)) // "(?)"
fmt.Println(string(1234567)) // "<EFBFBD>"
```