• Ext表单提交乱码解决方案


    Ext表单提交乱码问题解决方案:

             网上的解决方案有的是将所有的文件编码统一换成Utf-8,还有就是修改Ext-base.js中的源代码,在Ext3.0中那些问题都已经被解决但是还是会有乱码现象,因此尝试本文的解决方案:
             假如提交的中文字符放在str中,则 str = new String(URLDecoder.decode(str).getBytes("ISO-8859-1"),"UTF-8");

    通过这一句话就可以解决乱码问题。

    原因:在提交的过程中,默认的编码格式为ISO-8859-1,因此出现问题,强制转换一次即可。

    第二种方法(比第一种好用):

            在配置formpanel的时候,配置选项:enctype:'multipart/form-data;charset=utf-8',其中'multipart/form-data表示将要上传文件,关键的是设置字符集为Utf-8(;charset=utf-8),注意在上传文件时一般将fileUpload选项配置成true,但是配置此项后enctype无效,因此为了保证不出现乱码,应该不配置fileUpload,而在enctype中指明类型为上传文件。enctype与fileUpload配置在效果上是等效的。

    终极解决方案:

           设置一个过滤函数,每当请求或者回复的时候自动进行编码。在web.xml中设置一个监听方法的配置用来进行编码:

    <filter> 
       <filter-name>setEncoding</filter-name> 
       <filter-class>com.guet.function.filter.ToUnicode</filter-class>  
     </filter>

    然后配置其作用范围,我们配置的是对所有的请求都进行编码转换。

     <filter-mapping>
        <filter-name>setEncoding</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>

    配置说明,过滤器的名字为setEncoding,注意两个名字都一样。第一个指明其实现的类,第二个指明其过滤的范围。

    类的具体实现为:

    package com.guet.cab.base.Filter;

    import java.io.*;
    import javax.servlet.*;

    public class EncodingFilter implements Filter {
     public void init(FilterConfig filterConfig) throws ServletException {

     }

     public void doFilter(ServletRequest request, ServletResponse response,
       FilterChain chain) throws IOException, ServletException {
      try {
       request.setCharacterEncoding("UTF-8");
       response.setContentType("text/html;charset=UTF-8");
      } catch (Exception e) {
      }

      chain.doFilter(request, response);
     }

     public void destroy() {

     }
    };

       有了第三种终极的解决方案,就可以在第二种方法中将uploadData设置为true,如果这项不配置,可能出现不能上传文件的情况。

                                                                                      by:rush date:2011年4月19日 17:41:25

                                                                                      modify Date :2011年4月19日 22:54:01


    如果觉得本文好的话就分享给你的朋友把!
  • 相关阅读:
    [note]抽象类和接口的相同点和不同点
    百度竞价门再跟踪:违规医疗广告数量仍大幅增加
    获取拼音的第一个字母的方法
    一个分页存储过程
    正则表达式(Regular Expressions)
    四个故事
    Oracle 常用
    我很喜欢的一个[帖子]:从现在起,我开始还债。
    DataGrid 中的 HyperLinkColumn (可以携带多个Get参数)
    100 statements in English.
  • 原文地址:https://www.cnblogs.com/rushoooooo/p/2032333.html
Copyright © 2020-2023  润新知