乱码实际上是一种司空见惯的东西了,无非就是编码不正常导致的。因此在做数据转换的时候,如果发现了乱码,首先就是不要着急,将编码的结果和用什么编码转什么编码搞清楚就可以进行尝试反转来实现恢复了。
首先要了解的是,默认的情况先,在servlet接收数据时,如果不是指定了编码,则默认都是iso8859-1,因此在处理的时候就会涉及到编码转换。
为什么要转换?
- 1 因为iso8859-1收录的词,不支持中文,也不支持中文标点符号,因此在做中文字符进行传输的时候,接收时,必须先指定用iso8859-1来进行接收,然后通过将iso8859-1格式进行转换字节,然后再用utf-8或者gbk等所需要的字符集进行转换,从而得到正常的显示内容。
- 2 我们再代码开发中,默认是utf-8编码,当然,有时候,eclipse或者idea其实也可以设置为其他编码,毕竟有一些老的代码,可能就是gbk编码的呢,毕竟中文windows的默认编码就是GBK。
本质:
就是数据转换成字节流传输,然后编码解码时,因为编解码转换集不同,导致转换结果出现不可识别。