Go 围棋中乌尔都语文本的编码

Go 围棋中乌尔都语文本的编码,go,unicode,encoding,Go,Unicode,Encoding,我有乌尔都语文本,我想用Go编码 用户名是这样的 username := `ابو ناصر الحرسانی` 我读过Go的编码包,但是我没有得到我想要的结果。我想读取此变量的所有字节和字符串等效编码值。Go对字符串类型使用UTF-8编码。使用string将一段UTF-8编码字节([]字节)转换为UTF-8编码的字符串。字符串是字节s的序列;它是字节片的不可变副本 package main import "fmt" func main() { username := `ابو ن

我有乌尔都语文本,我想用Go编码

用户名是这样的

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

我读过Go的编码包,但是我没有得到我想要的结果。我想读取此变量的所有字节和字符串等效编码值。

Go对
字符串类型使用UTF-8编码。使用
string
将一段UTF-8编码字节(
[]字节
)转换为UTF-8编码的
字符串
字符串
字节
s的序列;它是
字节
片的不可变副本

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)
}
游乐场:

输出:

[]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
的别名


围棋博客:

维基百科:

Unicode:


这里没什么可做的。您可以在源代码中自由使用UTF-8编码的乌尔都语文本。这里不需要“编码”。如果您有特定问题:显示代码和代码的作用,并解释您认为这是错误的原因。谢谢您的回答。我在控制台中打印字符串时遇到了一个小问题。实际上,我想在pdf中编写所需的输出,但它不起作用。它的打印线很乱。我试图根据文档更改格式(使用%q和%s),但仍然得到混乱的输出。如果您在PDF输出方面遇到问题,有什么解决方案吗。这可能是您正在使用的PDF软件包的一个限制(提及哪一个会很有用;)。例如,gofpdf目前不支持UTF-8:“与派生gofpdf的FPDF版本1.7一样,此软件包还不支持UTF-8字体。特别是,目前不支持需要多个代码页的语言,如中文、日文和阿拉伯文。[…]但是,支持自动将UTF-8符文转换为少于256个glyphs的语言的代码页编码。“@rob74是的,我正在使用gofpdf,感谢您的回复。它解决了我的问题:)