我有乌尔都语文字,我想用Go对其进行编码。
用户名就是这样
username := `ابو ناصر الحرسانی`
我阅读了有关Go的编码包的信息,但无法获得所需的结果。我想读取此变量的所有字节和等效的字符串编码值。
答案 0 :(得分:2)
Go对string
类型使用UTF-8编码。使用string
将一片以UTF-8编码的字节([]byte
)转换为以UTF-8编码的string
。 string
是byte
的序列;它是byte
切片的不变副本。
package main
import "fmt"
func main() {
username := `ابو ناصر الحرسانی`
userbytes := []byte(username)
fmt.Printf("%[1]T: %[1]v\n", userbytes)
userstring := string(userbytes)
fmt.Printf("%[1]T: %[1]v\n", userstring)
}
游乐场:https://play.golang.org/p/Ugwj-CxmQw0
输出:
[]uint8: [216 167 216 168 217 136 32 217 134 216 167 216 181 216 177 32 216 167 217 132 216 173 216 177 216 179 216 167 217 134 219 140]
string: ابو ناصر الحرسانی
类型byte
是类型uint8
的别名。
Go博客:Strings, bytes, runes and characters in Go
The Go Programming Language Specification
维基百科:UTF-8
Unicode:UTF-8, UTF-16, UTF-32 & BOM