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 (很长...但是没看完)

form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决的更多相关文章

  1. form表单提交controller层接收到的值为乱码的问题

    今天遇到个中文乱码问题,大体情况是这样的:前台有一个form表单,其中有几个input的控件,值是带中文的,form表单只设置了id='form1' method='post'  action='xx ...

  2. 表单提交数据量大于2m,java 后台接受不到表单传递过来的数据

    一般来说 post请求提交的数据无大小限制,但是tomcat 设置默认的表单传输数据大小不能2m,这时候当数据大于2m后台接收达不到表单的数据,需要修改tomcat的server.xml的的maxPo ...

  3. django 使用form组件提交数据之form表单提交

    django的form组件可以减少后台在进行一些重复性的验证工作,极大降低开发效率. 最近遇到一个问题: 当使用form表单提交数据后,如果数据格式不符合后台定义的规则,需要重新在前端页面填写数据. ...

  4. jQuery Form 表单提交插件-----formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的 应用

    一.jQuery Form的其他api  1.  formSerialize 将表单序列化成查询串.这个方法将返回一个形如: name1=value1&name2=value2的字符串.是否可 ...

  5. jQuery判断 form表单提交时一些文本框的判断

    一: form表单提交时如果表单里有input标签为空那么不提交form表单. <head> <script type="text/javascript"> ...

  6. SpringMVC中使用bean来接收form表单提交的参数时的注意点

    这是前辈们对于SpringMVC接收表单数据记录下来的总结经验: SpringMVC接收页面表单参数 springmvc请求参数获取的几种方法 下面是我自己在使用时发现的,前辈们没有记录的细节和注意点 ...

  7. ajax传递数组、form表单提交对象数组

    在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致,那么传值就没有什么问题.不过,在前几天的开发 ...

  8. jqueryEasyUI form表单提交的一个困惑

    今天用到了jqueryEasyUI的form表单做一个增加操作的提交,想打开调试(用的是火狐)看看传的参数,但是怎么也看不到form表单提交的http请求?而且还会发送一个另外的请求! 在页面加载时, ...

  9. Form表单提交数据的几种方式

    一.submit提交 在form标签中添加Action(提交的地址)和method(post),且有一个submit按钮(<input type='submit'>)就可以进行数据的提交, ...

随机推荐

  1. mui 事件绑定(on)

    除了可以使用addEventListener()方法监听某个特定元素上的事件外, 也可以使用.on()方法实现批量元素的事件绑定. 示例: 点击新闻列表,获取当前列表项的id,并将该id传给新闻详情页 ...

  2. hdu1509(Windows Message Queue) 优先队列

    点击打开链接 Problem Description Message queue is the basic fundamental of windows system. For each proces ...

  3. hdu 4723 How Long Do You Have to Draw(贪心)

    How Long Do You Have to Draw Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  4. ImageBox Control with Zoom/Pan Capability

    Download source files - 10.8 Kb Download demo project - 6.81 Kb Introduction This control extends th ...

  5. .htaccess中的apache rewrite规则写法详解(未完)

    转:http://www.cnblogs.com/adforce/archive/2012/11/23/2784664.html http://blog.csdn.net/Long_Xiao_Yun/ ...

  6. Visual Studio : Debug > Start new instance添加快捷键

    Instead of using your Macro, you could simply add in the Options-Dialog under Environment->Keyboa ...

  7. C# Activator.CreateInstance 动态创建类的实例(二)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. TCP四次挥手断开连接详解

    TCP四次挥手. 数据传输结束后,通信的双方都可释放连接.现在A和B都处于ESTABLISHED状态.A的应用程序先向TCP发出连接释放报文段,主动关闭TCP连接.A把连接释放报文段的首部FIN置为1 ...

  9. iOS 学习笔记四 【xcode 7.3 ESJsonFormat-Xcode 插件不能使用的解决办法】

    步骤: 1.[前提要[关掉xcode],然后终端运行,一次不行,运行两次!] 2.[鼠标双击下方代码,command + c 复制即可] 3.[打开终端,command + V 粘贴,按回车运行即可, ...

  10. Linux下printf函数显示不同的颜色(转)

    Linux下printf函数显示不同的颜色 在学习Linux网络编程的时候做一个聊天系统,当时为了界面更漂亮点,于是搜索了下关于printf()函数的用法,给printf的输出加上些特效比如颜色,可以 ...