go语言中文处理
中文在go语言中占三个字节,len 或者 range 一个含中文的字符串跟我们预期的结果不一样
求长度用 utf8.RuneCountInString,遍历用 rune
func main() { txt := "abc好好学习" fmt.Println("len长度:", len(txt),"\nutf8长度:",utf8.RuneCountInString(txt)) for k, v := range []rune(txt) { fmt.Printf("k:%d,v:%c \n", k, v)//直接打印v的话是ascii码对照表 }
len([]rune(txt)) // 等价于 utf8.RuneCountInString(txt) }
打印结果: