use*_*610 3 utf-8 string-formatting go
package main\n\nimport (\n "fmt"\n)\n\nfunc main() {\n fmt.Printf("%c, %x, %x", \'\xe1\x9a\xb5\', \'\xe1\x9a\xb5\', "\xe1\x9a\xb5")\n}\nRun Code Online (Sandbox Code Playgroud)\n\n输出:
\n\n\xe1\x9a\xb5, 16b5, e19ab5\nRun Code Online (Sandbox Code Playgroud)\n\n\n
因为每个人做的事情都不一样。两者都将参数格式化为十六进制数字,但各自对参数的看法不同。
\n\nfmt.Printf("%x", \'\xe1\x9a\xb5\')以 32 位整数 (int32) 的形式打印单个 unicode 字符(符文,如果您愿意的话)。
fmt.Printf("%x", "\xe1\x9a\xb5")将字符串(字符串的各个字节)打印为 8 位整数 (uint8)。当使用 utf-8 编码时,符文以三个字节进行编码。这就是为什么有六个十六进制数字(每个字节两个)的原因。
要详细研究字符串的打印,请从fmtString文件中的函数开始fmt/print.go函数开始。
func (p *pp) fmtString(v string, verb rune) {\nRun Code Online (Sandbox Code Playgroud)\n