中文字符串遍历
问题
置信很多人都遇到过中文字符串遍历乱码的状况。
遍历字符串个别有两种形式:下标遍历,for…range,如果字符换蕴含中文,应用下标遍历时则会呈现乱码。
解决办法
将字符串转为[]rune类型,再应用下边遍历则不会呈现乱码。
package main
import "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]))
}
}
发表回复