关于乱码的问题
今天又遇到一个乱码的问题,现在做一个简单的总结:
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