java中文乱码的问题在开发过程中经常出现,先将我的体会总结一下,与大家分享分享:
一:出现乱码的原因
先要知道乱码出现的一般原因。知道了这个就明确了更正方向。
一般出现乱码的原因有:
1存储与读取:
在存储的时候将汉字使用某种编码方式转换成了字节流,而在重新读取这些字节流以解码成相应的汉字时却使用了另外的编码方式,错误的原因可能是使用较短的ISO-8859-1编码存储,而使用了可能是GBK、GB2312、UTF-8解码,或是使用了较长的GBK、GB2312、或是UT-8作编码存储,而使用了较短的编码如ISO-8859-1编码进行解码。
2网页显示(信息传输时):
A、当网页从客户端提交信息到服务器端时,采用的编码一般为ISO-8859-1方式,因此,为了获得正确的汉字显示,应采用相同的编码将取得的信息进行解码。
B、将汉字显示到客户端页面时,应使用与网页指定的字符集相同或相兼容的编码方式编码后再发送到客户端网页进行显示。
二:解决乱码的方法
一般是用到一下2中方式来进行汉字的重编码和解码:
1:使用getBytes("编码方式");来对汉字进行重编码,得到它的字节数组。
2:再使用 new String(Bytes[],"解码方式");来对字节数组进行相应的解码。
其中"编码方式"和"解码方式"一般有:GBK、ISO-8859-1、GB2312、或是UT-8。只要指定对了它们,中文乱码问题就可以解决。
三:总结:
只要理解了编码和解码的含义,并掌握了什么时候应该编码,什么时候应该解码,怎么编码及怎么解码,Java的汉字问题其实还是很容易解决的。