首页 > 代码库 > js在URL中传参中文出现乱码

js在URL中传参中文出现乱码

最近用easyUI做一个下拉框,在输入某值后根据某值模糊查询:

$(‘#comboboxA‘).combobox({
   url:basePath+‘form/formListForCombobox‘,
   method:‘get‘,
            valueField:‘formId‘,
          textField:‘formDisplayName‘,
            panelHeight:200,
            multiple:false,
            keyHandler: {
  up: function (e) {               //【向上键】押下处理 
              },
              down: function (e) {             //【向下键】押下处理
              },
              enter: function (e) {             //【回车键】押下处理
               var inputText = $(‘#comboboxA‘).combobox(‘getText‘); 
     var url = basePath+‘form/searchFormList‘+‘?inputText=‘+ inputText;
     $(‘#comboboxA‘).combobox(‘reload‘,url);
     $(‘#comboboxA‘).combobox(‘setValue‘,inputText); 
    /*$.ajax({
       type:‘post‘,
       url:basePath+‘form/searchFormList‘,
       data:{‘inputText‘:inputText},
       dataType:‘json‘,
       success:function (formOptionList){
        console.log(formOptionList);        
       },
       error: function(result) {
        if(result != ‘null‘ && result != ‘‘){
        $.messager.alert("提示", "出现未知错误!");
        }
        }
   });*/
              },
              query: function (keyword) {     //【动态搜索】处理
              }
          }
});

其中的var url = basePath+‘form/searchFormList‘+‘?inputText=‘+ inputText;

这一行用到了get方式传参(url后面直接跟参数为get方式,将参数放在data{"inputText":"inputText"}为post方式传参)。

而如果没有配置Servers\Tomcat v7.0 Server at localhost-config\server.xml的约64行:

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>则会出现中文乱码。



此乱码还有一种解决方案:

js中:var url = basePath+‘form/searchFormList‘+‘?inputText=‘+ encodeURI(inputText,"UTF-8");

controller中: String inputTextVal = new String(inputText.getBytes("ISO-8859-1"),"UTF-8");

不过,第一种方法比较推荐,直接在配置里配置一下方便。


js在URL中传参中文出现乱码