UTF-8,GBK互转之后为什么乱码
在开发过程中,我们会遇到UTF-8跟GBK互转的时候,当中文字符为偶数时一般没有问题,但为奇数时互转之后最后一个字会出现乱码,为此,我们来看下到底是为什么。
单元测试类如下:
打印如下:
结论
就像测试类注释里写的GBK编码是偶数位编码,当byte数组为奇数时的UTF-8转成GBK时,最后一位标为不识别使用符号?代替对应ASCII代码就是63,再转回UTF-8时就会出现最后一位是乱码了。
在开发过程中,我们会遇到UTF-8跟GBK互转的时候,当中文字符为偶数时一般没有问题,但为奇数时互转之后最后一个字会出现乱码,为此,我们来看下到底是为什么。
单元测试类如下:
打印如下:
就像测试类注释里写的GBK编码是偶数位编码,当byte数组为奇数时的UTF-8转成GBK时,最后一位标为不识别使用符号?代替对应ASCII代码就是63,再转回UTF-8时就会出现最后一位是乱码了。