首页 > 代码库 > 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中传参中文出现乱码