关于java中文乱码问题,我有话要说。

最近这两天改两个项目的bug,都遇到了中文乱码的问题,现将问题和解决方案都汇总于此,供大家参考。

如果最开始你把整个项目的编码和tomcat的编码都设置成一样,例如GBK或者GB2312或者UTF-8,应该前后方交互是不会出问题的,但是也会有出现像我这样中途给项目添功能,然后让中文乱码的,这就不知道什么原因导致的了,只知道怎么解决。

问题1:从后台传入前台中文乱码。

解决方案:在处理数据之前,在后台设置

  response.setCharacterEncoding("UTF-8"); 这里的编码可以自己稍微试一下,常见的有utf-8,ISO-8859-1,GB2312

前台也要设置编码:在Head里面设置

<meta http-equiv="Content-type'' content=''text/html;charset=UTF-8"> 

问题二:从前台传入后台中文乱码

解决方案:这个问题就比较头疼了,我现在有三种问题可以解决。

1)设置request

request.setCharacterEncoding("utf-8");和设置response一样一样的。

2) 把字符转换成字符流的形式进行转码,把使用中文的字符串从前台拿到之后进行如下操作,里面的编码方式因人而异

new String(str.getBytes("gbk"),"utf-8");

3)使用StringUtil类进行转码

StringUtil有相关的方法:例如toGb()等就可以解决乱码问题。

原文地址:https://www.cnblogs.com/Gabby/p/5460188.html