亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

go語言截取字符串后亂碼
大家講道理
大家講道理 2016-11-09 14:15:39
0
2
1700
package main 
import (
"fmt"
)
func main() {
str := "我愛你"
fmt.Println(str) // 可以直接顯示
fmt.Println(str[0:2]) // 顯示亂碼??
}

想問一下,這種直接截取字符串的方法,為什么會導(dǎo)致亂碼?

大家講道理
大家講道理

光陰似箭催人老,日月如移越少年。

reply all(2)
季偉

不懂go,但八成是編碼問題


一個中文字是用多個字節(jié)表示,UTF8用3個字節(jié),Unicode用2個字節(jié),GBK用2個字節(jié)。


但go可能并不知道,還將它當(dāng)成單字節(jié)字符來看。因此你會截出一個半字。這半個字就表現(xiàn)為亂碼。


解決方案: 可一律轉(zhuǎn)成unicode編碼,或使用庫中可操縱多字節(jié)字符的函數(shù)


季偉

轉(zhuǎn)成rune,按照字符去操作

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template