中文乱码基本是个比较麻烦的问题,总是要反反复复老是要遇到
这次又遇到了
是Struts2+spring+hibernate+mysql5+tomcat6,spring,hibernate就不用分析
总结如下
1,JSP页面中
2.struts.xml或是struts.properties中配置(注意配置优先级)
struts.i18n.encoding=UTF-8
3.EncodingFilter
4.mysql的my.ini
default-character-set=utf8
5.tomcat的server.xml
6.注意eclipse WTP中如果使用了server的独立配置,请在修改eclipse的server中tomcat的server.xml,同上(这次就是出在这)
7.资源文件,在eclipse中的项目属性,Rescouce下的有改编码的地方,保持统一即可
8.jsp或是html中
(这里看网上有其他同学说struts2如果有多行重复此项会有问题,具体不详,我个人觉得这是没什么根据,有实在不行还乱的同学参考下,如果使用sitemesh的话,注意,如果装饰页和被装饰页都有此行,会出现多行)
以上写的比较简单,每项都有人提更详细的操作步骤,我就不重复了,注意第6点,这个比较容易忘记
本人总结下,是目前本人遇到的乱码问题的解决经历.有其他乱码问题的欢迎补充
这次又遇到了
是Struts2+spring+hibernate+mysql5+tomcat6,spring,hibernate就不用分析
总结如下
1,JSP页面中
<%@ page language="java"
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
2.struts.xml或是struts.properties中配置(注意配置优先级)
struts.i18n.encoding=UTF-8
3.EncodingFilter
public class EncodingFilter implements Filter {
.....
@Override
public void doFilter(ServletRequest sRequest, ServletResponse sResponse,
FilterChain filterChain) throws IOException, ServletException {
sRequest.setCharacterEncoding("UTF-8");
filterChain.doFilter(sRequest, sResponse);
}
....
}
4.mysql的my.ini
default-character-set=utf8
5.tomcat的server.xml
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
6.注意eclipse WTP中如果使用了server的独立配置,请在修改eclipse的server中tomcat的server.xml,同上(这次就是出在这)
7.资源文件,在eclipse中的项目属性,Rescouce下的有改编码的地方,保持统一即可
8.jsp或是html中
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
(这里看网上有其他同学说struts2如果有多行重复此项会有问题,具体不详,我个人觉得这是没什么根据,有实在不行还乱的同学参考下,如果使用sitemesh的话,注意,如果装饰页和被装饰页都有此行,会出现多行)
以上写的比较简单,每项都有人提更详细的操作步骤,我就不重复了,注意第6点,这个比较容易忘记
本人总结下,是目前本人遇到的乱码问题的解决经历.有其他乱码问题的欢迎补充