请教golang怎么把utf8编码转成字符

mking · · 3349 次点击
写在文件里面的如果是 \346\200\241 这样的字符串显示,那实际的字符串是"\\346\\200\\241", 这个字符串不是"怡",按照UTF-8来讲,前者是12个字符,后者是1个字符,他们在文件里面的二进制表示前者是12个字节,后者是3个字节, 这3个字节的八进制表示就是 \346\200\241。 需要将文件里面的 \346\200\241 这样的字符串表示还原为他们实际想表达的二进制
#8
更多评论
UTF-8的八进制表示,go天生就支持的,直接fmt.Printf("%s") package main import ( "fmt" ) func main() { s := "\346\200\241\347\276\244" fmt.Printf("%s, %x, %o\n", s, s, []byte(s)) for i, r := range s { fmt.Printf("start index:%v, rune:%#U\n", i, r) } } https://golang.org/ref/spec#Rune_literals
#1
怡群, e680a1e7bea4, [346 200 241 347 276 244] start index:0, rune:U+6021 '怡' start index:3, rune:U+7FA4 '群'
#2