FWQ
Golang 字符串转 []byte 为何有时结果不同?
亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《Golang 字符串转 []byte 为何有时结果不同? 》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。, , golang 字符串转 []byte 为何不同?,当使用 []byte(str) 将字符串转换为字节切片时,结果可能与直接声明字节切片不同。,举个例子, 字符 ‘xa0’(空格字符)在转换为字节切片后,输出的是 [194 129],而直接声明字节切片 [129] 的话,输出的却是 [129]。,这是因为:,因此,当使用 []byte(str) 转换为字节切片时,会直接输出字符的 UTF-8 编码。,而直接声明字节切片,意味着指定了固定长度,此时 go 会根据长度将字节填充到切片中。如果长度不匹配字符的 UTF-8 编码宽度,就会导致结果不同。,要保证转换结果一致,可以使用 []rune(str)…