关于乱码的问题

今天又遇到一个乱码的问题,现在做一个简单的总结:

1,如果你测试的时候发现前端传过去的值没有乱码,就检查后端是否乱码,通常是打断点查看。

如果发现传入后端的 值乱码了,有好几种解决办法,下面主要写几个简单的解决办法:

一,request.setCharacterEncoding("utf-8");//必须写在第一位,设置这样方式去读。这样中文就能够读取出来了,但是需要注意。表单的发送方式必须是method='post'

  response.setContentType("text/html;charset=utf-8");//设置传过去的页面显示的编码

  String name=req.getParameter("username");

  String pwd=req.getParameter("pwd");

或者针对某个参数使用str= java.net.URLDecoder.decode(str,"UTF-8"); 进行乱码处理

二,需要修改web.xml里面的内容,就是说,字符编码从xml接收过来。需要在xml文件中配置参数

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

2,如果你发现前端,后端的值都没有乱码,但是插入到mysql数据库后乱码了,那是因为你的配置中少了一行代码,配置参考如下:

jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8

猜你喜欢

转载自www.cnblogs.com/zhangliang88/p/10853906.html