Go中Urdu文本的编码

时间:2018-11-05 12:16:27

标签: go unicode encoding

我有乌尔都语文字,我想用Go对其进行编码。

用户名就是这样

username := `ابو ناصر الحرسانی`

我阅读了有关Go的编码包的信息,但无法获得所需的结果。我想读取此变量的所有字节和等效的字符串编码值。

1 个答案:

答案 0 :(得分:2)

Go对string类型使用UTF-8编码。使用string将一片以UTF-8编码的字节([]byte)转换为以UTF-8编码的stringstringbyte的序列;它是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

The Unicode Consortium