go 字符串乱码和不可打印
Posted kevin_yang123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go 字符串乱码和不可打印相关的知识,希望对你有一定的参考价值。
func main() {
s := "中国"
fmt.Println(s[:5])
b := []byte{129, 130, 131} //如果 string 中出现不合法的 utf8 编码,打印时对于每个不合法的编码字节都会输出一个特定的符号�
fmt.Println(string(b))
}
结果
中��
���
乱码的原因:
因为“国”编码有 3 个字节,s[:5]只取了前两个,这两个字节无法组成一个合法的 UTF8 字符,故输出两个�。
另外需要警惕不可打印字符
map 查找:m[string(b)];
字符串拼接:"<" + string(b) + ">";
字符串比较:string(b) == "foo"。
以上是关于go 字符串乱码和不可打印的主要内容,如果未能解决你的问题,请参考以下文章
Android 使用Log打印日志的时候中文是乱码,怎么解决啊?
[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础