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