浅谈UTF-8编码
UTF-8是一个变长度的编码方式,它使用一个到四个8位的字节编码一个Unicode码点,编码的第一个字节的high-order bits预示着编码有几个字节,如下图所示:
- 首字节的首位为0时,表示该编码只有一个字节
- 首字节的high-order bits为110时,表示该编码有两个字节,其余字节的high-order bits为10
- 首字节的high-order bits为1110时,表示该编码有三个字节,其余字节的high-order bits为10
- 首字节的high-order bits为11110时,表示该编码有四个字节,其余字节的high-order bits为10
package main import "fmt" func main() { s := "世界" r := []rune(s) // Print every rune in the string s of its hexidecimal and decimal representation fmt.Printf("%x\t%d\n", r, r) // Print the string s fmt.Println(string(r)) // Print ervery bytes of the string s in hexidecimal separated by space fmt.Printf("% x\n", s) }在command line运行:go run main.go,结果如下: