Patch

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,