平时我们开发中传输的数据用的最多的是String,我们在使用时往往new String(),没有人去关注的存储编码,乱码问题的本质就是由于不同编码的字节(byte)转化时无法正确转化
String 是具有编码格式的,
- String 类可以按照编码格式存储byte(字节)在磁盘中,不同的编码格式存储到磁盘中的字节(byte)是不同的,
- 磁盘中的字节(byte)与String 相互转化过程中如果采用的编码不一样很可能出现乱码的
我们在创建新对象时,new String() ,是有默认编码的,调用了java.nio.charset.Charset.defaultCharset() 方法,二者default 值可以通过及方式设置
所以我们在new String()时要注意编码问题,如果在一个系统中是没有问题的,但多个系统中可能会出现中文乱码的问题,乱码大多数都是转码过程中出现了问题,
是可以转码解决的
new String(str1.getByte("srcCharSet"),"desCharSet") 将srcCharSet存储的字节(byte)转化为desCharSet存储的字节