zhangkaitao / es

JavaEE项目开发脚手架(我的公众号:kaitao-1234567,我的新书:《亿级流量网站架构核心技术》)
https://github.com/zhangkaitao/es
Apache License 2.0
2.17k stars 1.59k forks source link

searchForm中,用中文的关键字进行查询,查不到结果。 #31

Closed franklu918 closed 10 years ago

franklu918 commented 10 years ago

调试发现为Form表单使用jQuery.serialize()序列化后出现中文乱码导致。见: application.js文件 var turnSearch = function(table, searchForm, isSearchAll) { ....... 和 BaseMethodArgumentResolver.java 中getPrefixParameterMap()函数没进行转码。

解决方法:调用decodeURIComponent(XXX,true);将数据解码 例如: var params = jQuery("#formId").serialize(); // http request parameters. params = decodeURIComponent(params,true); 再进行编码 params = encodeURI(encodeURI(params));

后台 String paramsTrans = new String(params.getBytes("ISO-8859-1"),"UTF-8"); params = java.net.URLDecoder.decode(paramsTrans , "UTF-8"); 问题解决。

zhangkaitao commented 10 years ago

get都有中文乱码问题 可以考虑在服务器端配置 如tomcat中