关于Java乱码的问题
误区
一直以来,
new String("testString".getBytes("GBK"),"UTF-8")
这样的写法都被用来把字符串从GBK编码转为UTF-8,
其实这样的理解是错误的。
在JAVA内部,统一用Unicode来编码和存储数据。
"testString".getBytes("GBK")
这行代码的真实作用,是取出字符串的 GBK编码而
小编推荐一个学JAVA的学习裙【四九二,一七三,八四二】,无论你是牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发具,很多干货和技术资料分享
net String (byte[],"UTF-8")
这里的UTF8,是告诉Java在传入的byte[]里保存的是UTF-8 格式的编码,这样Java内部就会根据UTF-8的编码方案来转化并保存byte[]数据
所以如果想从GBK转为UTF-8,以上这样的代码是完全错误的,当然转化成其他编码也是一样的问题,只是有时候错误的方案却能得到正确的结果,这就是歪打正着了。
但是总归一句话,不要尝试用这种方式来在JAVA中实现转码