Posted on 2010-05-23 10:46
xcp 阅读(301)
评论(0) 编辑 收藏 所属分类:
struts2
1、JSP页面显示的中文问题
这是最初级的东西,网上到处都有,不过还是列一下吧:
Page的第一行改成:<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
Head里加:<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
2.struts2里面配置,不过默认就是utf-8
<constant name="struts.i18n.encoding" value="utf-8"></constant>
3.但是有的时候虽然配置了struts2,但是有时候还是出现乱码,比如struts2,1.6就是,所以我们最好在struts2过滤之前就已经将数据过滤了一次
在这我们可以自己实现或者用spring都可以
<filter>
<filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
其实任何的interceptor机制都可以处理这个的,不管用Webwork还是Spring的interceptor,甚至用AOP,只要在取参数前
加那么一句:request.setCharacterEncoding("utf-8");就行了。以前我用struts就是在它的
RequestProcessor的populate之前加了这么一行。
4. request 的parameter里要传中文参数的问题
这个问题跟Web
Container有关系,记得以前我同学用WebLogic时好象没出现这样的问题。(Tomcat里的解决方案是在server.xml里
Connector port="8080"的attribute里加URIEncoding="utf-8"
当然还有最土的解决方案,虽然不太会用到,不过还是列出来,以备最无奈的时候使用:
String encodeStr=new String(fieldValue.getBytes("8859_1"), "utf-8");
名称: ♪4C.ESL | .↗Evon
口号: 遇到新问题♪先要寻找一个方案乄而不是创造一个方案こ
mail: 联系我