Java中容易出现乱码的地方以及解决方法

2008-02-23 08:13:53来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

(1)显示中文JSP页面:〈%@pageContentType="text/html; chaset=gb2312" %〉

(2)在Weblogic下使用JSTL在头部添加:〈%@page pageEncoding="GBK"%〉

(3)中文页面提交返回获取参数值时:〈%request.setCharacterEncoding("gb2312"); %〉,

也可以采用下面的办法统一处理,首先创建下面的类:

//**********************************************// 



/* 



* TODO 字符编码过滤器 



    */ 



    package summer.admin; 



    import javax.servlet.FilterChain; 



    import javax.servlet.ServletRequest; 



    import javax.servlet.ServletResponse; 



    import java.io.IOException; 



    import javax.servlet.Filter; 



    import javax.servlet.http.*; 



    import javax.servlet.ServletException; 



    import javax.servlet.FilterConfig; 



    /** 



    * @author Coldrain 



    * TODO 字符编码过滤器 



    */ 



    public class EncodingFilter implements Filter{ 



    protected FilterConfig filterConfig; 



    private String targetEncoding = "gb2312"; 



  /** 



    *初始化过滤器,和一般的Servlet一样,它也可以获得初始参数。 



    */ 



    public void init(FilterConfig config) throws ServletException { 



    this.filterConfig = config; 



    if(config.getInitParameter("encoding") !=null){ 



    this.targetEncoding = config.getInitParameter("encoding"); 



    } 



    } 



  /** 



    *进行过滤处理,这个方法最重要,所有过滤处理的代码都在此实现。 



    */ 



    public void doFilter(ServletRequest srequest, 

ServletResponse sresponse, FilterChain chain) 



    throws IOException, ServletException { 



    System.out.println("使用以下方法对请求进行编码:encoding=" targetEncoding); 



    HttpServletRequest request = (HttpServletRequest)srequest; 



    request.setCharacterEncoding(targetEncoding); 



    chain.doFilter(srequest,sresponse); // 把处理权发送到下一个 



    } 



    public void setFilterConfig(final FilterConfig filterConfig) 



    { 



    this.filterConfig=filterConfig; 



    } 



  //销毁过滤器 



    public void destroy() 



    { 



    this.filterConfig=null; 



    } 



    } 



//************************************************************************//

然后在web.xml文件里添加下列配置:

    〈filter〉 



    〈filter-name〉encoding〈/filter-name〉 



    〈filter-class〉summer.admin.EncodingFilter〈/filter-class〉 



    〈init-param〉 



    〈param-name〉encoding〈/param-name〉 



    〈param-value〉gb2312〈/param-value〉 



    〈/init-param〉 



    〈/filter〉 



    〈filter-mapping〉 



    〈filter-name〉encoding〈/filter-name〉 



    〈url-pattern〉/*〈/url-pattern〉 



    〈/filter-mapping〉

(4)Struts中文问题:将中文转换为Unicode字符,可以将下列内容存在一个批处理文件进行:

    Set path==%path%; G:\JavaCode\Bug\web\WEB-INF\classes 



    native2ascii messages.properties messages_zh_CN.properties 



    //G:\JavaCode\Bug\web\WEB-INF\classes表示messages.properties文件存放路径

(5)weblogic中文问题解决直接在weblogic.xml添加下面的内容:

    〈charset-params〉 



    〈input-charset〉 



    〈resource-path〉/*〈/resource-path〉 



    〈java-charset-name〉GBK〈/java-charset-name〉 



    〈/input-charset〉 



    〈/charset-params〉

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java中的文件与磁盘操作技术详细解析

下一篇:经验:教你逐步配置J2EE来完全支持MySQL