中文字符串遍历
问题
置信很多人都遇到过中文字符串遍历乱码的状况。
遍历字符串个别有两种形式:下标遍历,for...range,如果字符换蕴含中文,应用下标遍历时则会呈现乱码。
解决办法
将字符串转为[]rune类型,再应用下边遍历则不会呈现乱码。
package mainimport "fmt"func main(){ //str := "abc" str := "hi,你好" //下标遍历 for i,v := range str{ fmt.Printf("str[%d]=%v\n", i, string(v)) } //for...range遍历 for i:=0; i<len(str); i++{ fmt.Printf("str[%d]=%v\n", i, string(str[i])) } //转为[]rune类型,再下边遍历 strRune := []rune(str) for i:=0; i<len(strRune); i++{ fmt.Printf("strRune[%d]=%v\n", i, string(strRune[i])) }}