学习中遇到的中文乱码问题。
2017-10-26 21:03
204 查看
JavaWeb技术下,Tomcat作为容器,发送请求的时候出现乱码问题。之所以出现乱码,主要是由于编码和解码采用的方法不同。因此保证编码解码格式一致是避免乱码发生的重要前提。
1.Post请求方式的
针对Post方式提交的请求如果出现乱码,可以每次在request解析数据时设置编码格式:request.setCharacterEncoding("utf-8");
也可以使用编码过滤器来解决,最常用的方法是使用Spring提供的编码过滤器:
在Web.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>*.do</url-pattern> </filter-mapping>
注:这最后的
<filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>
指的是范围,可以用/*表示的是所有的都过滤,也可以指定.do结尾的过滤。
2、针对Get方式的乱码问题
修改Tomcat安装目录下conf子目录下的server.xml文件(解决get方式) 【注:记得先停掉服务器】找到文件中类似这样的段落:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
在里面加上这样一段:URIEncoding=”UTF-8” 即变成下面这段
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" />
最后重启Tomcat即可。
3.【注】为了避免您的测试与我给的解决方案结果不符,请在项目编码格式为utf-8
jsp页面pageEncoding="utf-8"
html页面
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
相关文章推荐
- Jmeter学习中遇到问题(一):请求参数有中文,post传过去显示乱码
- qt creator 中文乱码问题 学习中遇到的问题1
- 在MyEclipse下创建工程时,遇到的中文乱码问题及解决方案
- Spring学习之中文乱码问题
- 解决Sybase客户端执行SQL遇到中文乱码问题
- struts2中遇到的中文乱码问题
- javaCS架构中遇到的中文乱码问题
- javaweb学习随记-----get方法传参中文乱码问题
- Eclipse导入工程遇到的一些问题之中文乱码
- 学习struts2建bbs总结四:解决jsp/action中文传值乱码问题
- 使用MySQL保存中文数据时,经常会遇到乱码问题的解决思路
- 学习PHP遇到的乱码问题
- 日常遇到的各种中文乱码问题(不断更新以备忘)
- Linux 学习解决归档管理器打开rar和zip中文文件名乱码问题
- ajax学习笔记---解决浏览器缓存和中文乱码问题
- 用ajax传递参数时遇到中文乱码问题的解决方法
- 传智博客学习之中文乱码问题
- cms开发中遇到的中文显示乱码问题
- Mysql中文字符出现乱码容易遇到的问题
- 遇到open flash char 中文乱码问题