Go 中的中文采用 UTF-8 编码,因此逐个遍历字符时必须采用 for-each 形式:
package main
import "fmt"
func main() {
printStr("hello")
fmt.Println()
fmt.Println()
printStr("中国人")
}
func printStr(s string) {
fmt.Println("str: " + s)
for _, v := range s {
fmt.Printf("0x%x %c, ", v, v)
}
fmt.Println()
for i := 0; i < len(s); i++ {
fmt.Printf("0x%x, ", s[i])
}
}
输出结果为:
str: hello
0x68 h, 0x65 e, 0x6c l, 0x6c l, 0x6f o,
0x68, 0x65, 0x6c, 0x6c, 0x6f,
str: 中国人
0x4e2d 中, 0x56fd 国, 0x4eba 人,
0xe4, 0xb8, 0xad, 0xe5, 0x9b, 0xbd, 0xe4, 0xba, 0xba,