form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决

Posted 不无聊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决相关的知识,希望对你有一定的参考价值。

form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决

一、问题:

页面输入框中的中文内容,在后台乱码,导致搜索功能失效;(详细可以见后面的重现)

二、原因:

浏览器对于数据的默认编码格式为UTF-8,但是Tomcat(tomcat7及以下)默认以ISO-8859-1解码,导致乱码;

三、解决方法:

3.1 后台对参数字符串重新构造;

代码一:
activityName = new String(activityName.getBytes("iso-8859-1"),"utf-8");  //一行代码即可

代码二:
activityName = java.net.URLEncoder.encode(activityName,"ISO-8859-1");
activityName = java.net.URLDecoder.decode(activityName,"UTF-8");

3.2 直接更改Tomcat配置

3.3 其他很多方法可百度

四、重现及解决:

技术分享图片

五、参考:

  1. 中文乱码在java中URLEncoder.encode方法要调用两次解决 - CSDN博客 http://blog.csdn.net/kongqz/article/details/9028111 (我就是看这个解决的)
  2. java中以post方式提交,中文编码&解码问题 - Dream it Possible - CSDN博客 http://blog.csdn.net/hu_zhiting/article/details/52088245 (教程写的很好,解决方法也多)
  3. request和response的setCharacterEncoding()方法 - kong_lev的博客 - CSDN博客 http://blog.csdn.net/kong_lev/article/details/73071198 (短小精悍)
  4. url请求中的中文乱码处理 - CSDN博客 http://blog.csdn.net/zhengyang7754/article/details/47263599 (很长…但是没看完)

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

以上是关于form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决的主要内容,如果未能解决你的问题,请参考以下文章

java form表单递交出现乱码

通过html页面的表单提交中文数据,Java后台出现乱码。跪求大神解答。

ext 表单提交或ajax请求返回的信息中文乱码,后台response和前台页面的编码都设置为uft-8了

form表单提交乱码问题?

easyui怎么将前台表单数据传递给后台

ajax提交java后台接收参数出现乱码