spring中的中文支持问题。

来源:互联网 发布:试题库软件 编辑:程序博客网 时间:2024/05/20 05:10
1、JSP页面显示的中文问题
这是最初级的东西,网上到处都有,不过还是列一下吧:
Page的第一行改成:<%@ page contentType="text/html; charset=gb2312" %>
Head里加:<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
2、页面Form 内容提交的中文问题
在web.xml里加入:
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<display-name>Character Encoding Filter</display-name>
<description>no description</description>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>

<!-- Encoding Filter Mapping Start-->
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
呵呵,这是个简单得要命的filter,如果不用Spring的话,完全可以自己写一个。其实任何的interceptor机制都可以处理这个的,不管用Webwork还是Spring的interceptor,甚至用AOP,只要在取参数前加那么一句:request.setCharacterEncoding("GB2312");就行了。以前我用struts就是在它的RequestProcessor的populate之前加了这么一行。
3、request 的parameter里要传中文参数的问题
这个问题跟Web Container有关系,记得以前我同学用WebLogic时好象没出现这样的问题。(Tomcat里的解决方案是在server.xml里Connector port="8080"的attribute里加URIEncoding="GB2312"
当然还有最土的解决方案,虽然不太会用到,不过还是列出来,以备最无奈的时候使用:
String encodeStr=new String(fieldValue.getBytes("8859_1"), "gb2312");

原创粉丝点击