提交 8ada7d06 编写于 作者: _Fighter's avatar _Fighter

2021年12月10日

上级 eebfd979
package main
import (
"fmt"
"unicode/utf8"
)
/*
rune 相当于go的char
使用range遍历 pos ,rune 对
使用utn8.RuneCountInString 获得字符数量
使用len 获得字节长度
使用[]byte 获得字节
*/
func main() {
s := "love中国!" //UTF-8 一个字占三个字节 ,英文一字节
fmt.Println(s)
for _, b := range []byte(s) {
fmt.Printf("%X ", b)
}
fmt.Println()
// 以下把s 对utf8 进行解码,转换成unicode ,之后赋值给 rune
for i, ch := range s { // ch is a rune(四字节)
fmt.Printf(" (%d %X) ", i, ch)
}
fmt.Println()
fmt.Println(" Rune Count:", utf8.RuneCountInString(s))
bytes := []byte(s)
for len(bytes) > 0 {
ch, size := utf8.DecodeRune(bytes)
bytes = bytes[size:]
fmt.Printf("%c ", ch)
}
fmt.Println()
for i, ch := range []rune(s) { // ch is a rune(四字节)
fmt.Printf(" (%d %c) ", i, ch)
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册