J2EE社区

苟有恒,何必三更起五更眠;
最无益,只怕一日曝十日寒.
posts - 241, comments - 318, trackbacks - 0, articles - 16

中文支持问题

Posted on 2010-05-23 10:46 xcp 阅读(288) 评论(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: 联系我



只有注册用户登录后才能发表评论。


网站导航: