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) }

打印结果:

 

posted @ 2018-06-26 19:58  .追风逐月  阅读(722)  评论(0编辑  收藏  举报