问题也就出现在这个容错的unicodeuFFFD上,因为字节切片不符合utf8编码规范无法得到正确的unicode,既uFFFD占据了本应该是正确的unicode所在的位置 。这个时候再将已经含有容错字符的rune切片转为字符串时,字符串存储的就是合法的utf8字节切片了,因此第六行输出的是含有uFFFD的合法utf8字节切片,也就产生了和最初始的字节切片不一致的情况了 。
??:在平时的开发中要注意rune切片和byte切片的相互转换一定要基于没有乱码的字符串(内部是符合utf8编码规则的字节切片),否则容易出现上述类似的错误 。
字符串的多种表示方式本节算是扩展了,在开发中还是尽量别用这种特殊的表示方式,虽然看起来很高级但是可读性太差 。
下面直接看代码:
bs := []byte([]byte("新"))for i := 0; i < len(bs); i++ {fmt.Printf("0x%x ", bs[i])}fmt.Println()fmt.Println("xe6x96xb0")fmt.Println("xe6x96xb0世界杂货铺" == "新世界杂货铺")fmt.Println('u65b0' == '新')fmt.Println("u65b0世界杂货铺" == "新世界杂货铺")// 输出:// 0xe6 0x96 0xb0// 新// true// true// true复制代码目前笔者仅发现unicode和单字节的16进制可以直接用在字符串中, 欢迎读者提供更多的表示方式以供交流 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- m2ts播放器:怎么把专用播放器的视频转化成普通视频格式?
- edius转场特效设置方法 edius无缝转场教程
- 迅雷格式转换软件:有什么软件可以把从腾讯优酷下载下来的缓存视频转换成手机能识别的格式?
- 直播电商新转折 电商新式直播
- dnf神枪手转职:DNF:神枪手第五职业即将开启?这个NPC是真的帅啊
- 转基因是什么意思:什么是转基因?
- json数据自动生成表格方法 json转excel表格工具
- 二进制转十进制的方法 二进制在线转换成文字
- 二进制转换十六进制方法 C语言十进制转换二进制
- 龙之谷二转任务流程 龙之谷手游转职路线