zoukankan      html  css  js  c++  java
  • IE下get传中文乱码的问题完美解决方案

    前几天做项目的时候遇到需要在easyui的combobox的url中以get的方式传中文,出现乱码。

    $('#cc').combobox({
      url : 'xxxAction.action?para='+中文,
      editable : false,
      valueField : 'cityId',
      textField : 'cityName'
    });

    到网上寻求解决方案。但基本就是那几种解决方案。

    1.在Tomcat的server.xml文件Connector标签中加入URIEncoding= "UTF-8"。

    2.在web.xml中加入spring处理中文的

    <filter>
    		<filter-name>encodingFilter</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>encodingFilter</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>
    

    3.用Java处理String乱码问题,String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "UTF-8");

    4.新建个过滤器。

    以上4种方法我都试过,firefox和Chrome,都已经解决了,但是IE下死活就是不好使,乱码依然存在。

    这时我第一个办法是,如果get不行,就改成post吧,只好改写combobox的方式,用combobox的loader功能。

    $('#cc').combobox({
        loader : function(param,success,error){
            $.post(
    	    "xxxAction.action", 
    	    { provinceId: provinceId },
    	    function(data){
    	        success(data);
    	    }, 
    	    "json"
    	);
        },
      editable : false,
      valueField : 'cityId',
      textField : 'cityName'
    });    
    

    后来跟同事一起讨论的时候,一位同事又给了我另一种解决方案,使用encodeURI

    var url = encodeURI('xxxAction.action?para='+中文);
    $('#cc').combobox({
        url : url,
        editable : false,
        valueField : 'cityId',
        textField : 'cityName'
    });
    

    还是第二种方式更简单,使用更灵活。

  • 相关阅读:
    一个C++的unit库
    一篇关于如何组织unit tests的文章,很有趣
    web开发者的checklist
    用了story point就一定agile了吗?
    C#中如何用Windows Management Instrumentation (WMI)得到系统信息
    Windows下C++的同步机制的演变
    Sysinternals自动更新的工具SyncTools
    什么情况下要替换C++自带的new和delete
    VS2012插件:可视化TFS代码版本历史
    Quattro发布自助手机广告产品
  • 原文地址:https://www.cnblogs.com/zyaizz/p/4095099.html
Copyright © 2011-2022 走看看