第一种方法:
var url = encodeURI(url);前端js先编码一次,
后台:String test=newString(request.getParameter("test").getBytes("iso8859-1"),"UTF-8");

先解码还原成byte数组, 再用utf-8 解码(另外也可以修改容器的配置文件, 让容器在遇到 GET 提交的参数时,使用 UTF-8编码. )
此时test已成功解码不出现乱码问题

第二种方法是:
前端JS两次编码:var url = encode(encodeURI(url));
后台 String test=URLDecoder.decode(request.getParameter("test"),"UTF-8");

如果只进行一次encodeURI,得到的是UTF-8形式的URL,服务器端通过request.getParameter()解码查询参数(通常是iso-8859-1)就会得到乱码。

进行两次encodeURI,第一次编码得到的是UTF-8形式的URL,第二次编码得到的依然是UTF-8形式的URL,但是在效果上和第一次进行一次UTF-8编码(此时全部转换为ASCII字符,没有多字节字符了),第二次进行一次iso-8859-1编码是一样的.

因为对英文字符来说, UTF-8编码和ISO-8859-1编码的结果相同。在服务器端,

首先通过request.getParameter()自动进行第一次解码(可能是gb2312,gbk,utf-8,iso-8859-1等字符集,对结果无影响)得到Ascii字符,然后再使用UTF-8进行第二次解码,通常使用Java.NET.URLDecoder("","UTF-8")方法。

附别人的讲解:

客户端发送的是请求头,而参数会根据你当前页面的编码方式进行编码之后发送给服务器
如果是utf-8,那就会根据utf-8进行编码发送给服务器.

如果是jsp文件可以用page指令的contentType属性来设置显示的编码方式.
html文件可以利用<meta>标签模拟请求消息头

而tomcat服务器是默认采用iso-8859-1来对请求消息进行解码的,如果前后不一就很容易出现乱码问题.

如果是post请求只需要设置request.setCharacterEncoding()与请求消息编码前的编码方式一样就可以.
如果是get请求,tomcat默认的是用iso-8859-1来进行解码, 此时request.setCharacterEncoding()不起作用,可以在tomcat的server.xml的Connector元素的useBodyEncodingForURI="true"使得起作用

解决url请求参数带中文时后台获取出现乱码问题相关推荐

  1. 解决URL请求中的中文乱码问题

    解决URL请求中的中文乱码问题 参考文章: (1)解决URL请求中的中文乱码问题 (2)https://www.cnblogs.com/franson-2016/p/5733667.html (3)h ...

  2. springboot获取多个请求参数_springboot获取URL请求参数的多种方式

    1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @pa ...

  3. 解决java以UTF-8输出中文时,Excel打开多语言文件乱码但是记事本打开却正常的问题

    解决java以UTF-8输出中文时,Excel打开多语言文件乱码但是记事本打开却正常的问题 public static boolean exportCsv(File file, List dataLi ...

  4. ios请求头解决参数中文乱码_解决请求参数的中文乱码问题(get、post)

    2018-11-28 在web请求与响应中,会遇到乱码问题,比如填写表单数据时,难免会输入中文,姓名.公司名称等.由于HTML设置了浏览器在传递请求参数时,采用的编码方式是UTF-8,但在解码时采用的 ...

  5. 解决“微信小程序http请求参数为空时,传到java后端变成了undefined”问题

    遇到问题: 最近在对接微信小程序和java后端springboot框架的接口,然后发现一个问题,当微信小程序发起http请求时,如果请求参数的值为空,传到java后端时就变成了undefined,这样 ...

  6. 解决URL请求的中文乱码问题

    解决URL提交中文出现乱码有两种办法: 1.请求端的中字符有encodeURI进行一次转码,如:  var url="/ajax?name="+encodeURI(name); 服 ...

  7. springboot获取URL请求参数的几种方法

    原文地址:http://www.cnblogs.com/xiaoxi/p/5695783.html 1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于pos ...

  8. ajax请求参数为中文乱码的情况

    解决中文乱码问题的方法有很多. 一.前提是ajax请求传递参数对象到后台,对象中的某个参数的值为中文,到后台之后出现乱码,导致报错.问题解决如下: rest层: 二.在tomcat的server.xm ...

  9. python编写请求参数带文件_python requests 库请求带有文件参数的接口实例

    有些接口参数是一个文件格式,比如fiddler 抓包参数如下显示 这个接口的 form-data fiddler 显示的和不带文件参数的接口有明显区别,显示的不是简单的键值对,所以我们也不能只通过 d ...

最新文章

  1. 从人肉到智能,阿里运维体系经历了哪些变迁?
  2. 用 Flask 来写个轻博客 (16) — MV(C)_Flask Blueprint 蓝图
  3. 为UINavigationBar添加自定义背景
  4. 综合-某假期欢乐赛 (Apri, 2018)
  5. 【网络】解决‘ipconfig不是内部或外部命令,也不是可运行的程序
  6. <script>放在head内和body内有什么区别
  7. 博客主题正在修改....
  8. 【Python + Selenium】之JS定位总结
  9. 怎么查看服务器系统内存,怎么查看服务器系统内存
  10. masked_fill【将mask中值为True的位置对应的待填充的张量设置为value值】
  11. 写程序,流程图很重要!
  12. C/C++中static与const的区别与联系
  13. Linux环境下配置JDK,java环境
  14. 常用开源 SLAM 方案
  15. 心电图 python_能测血压,还有心电图,兼顾9大运动模式,dido手环还不错
  16. 听听周报-谷歌发布首款真无线耳机 Pixel Buds|苹果发布全新头戴式耳机 Beats Solo Pro
  17. 关于车上那几块屏幕的一点思考
  18. 微信小程序03---开放能力的使用、发布和分享、组件化
  19. jQuery 跨域访问问题解决方法
  20. 计算机专业英语形成型考核册,电大资源网《人文英语3》形成性考核册作业题目和答案2018年...

热门文章

  1. HQL的使用和limit的替代
  2. Commons-logging + Log4j 入门指南
  3. formdata传递参数_前端利用formData格式进行数据上传,前端formData 传值 和 json传值的区别?...
  4. 打包caddy为docker镜像
  5. 【五线谱】拍号与音符时值 ( 五线谱拍号 | 全音符休止符 | 二分音符休止符 | 四分音符休止符 | 八分音符休止符 | 十六分音符休止符 | 三十二分音符休止符 )
  6. 【报错信息】Google Play 上架报错 ( Your app contains ads that do not comply with our Families ad | 退出亲子同乐计划 )
  7. 【错误记录】Android Studio 导入外部 so 动态库报错 ( java.lang.UnsatisfiedLinkError | 指定 APK 打包动态库的 CPU 架构 )
  8. 【计算理论】计算复杂性 ( 证明团问题是 NP 完全问题 )
  9. 转 推荐 33 个 IDEA 最牛配置,写代码太爽了!
  10. python xlrd处理表格常用方法