问题描述

近期做任务时,跟后端联调时遇到一个问题,前端发送get请求,当参数值有中文时,请求失败,请求参数变为乱码。(ps:一般当参数有中文时,很少使用get请求,而是使用post请求来传输数据,请求数据放在消息主体里,服务端根据请求头里的content-type里定义的编码格式解码数据)

后端起本地环境,接口可以跑通,数据可以获取到。但是在我自己电脑上,同样的接口全部返回为空。在debug模式下调试代码发现,发现后端拿到的参数值全部是乱码,那肯定就没有返回值了。这个时候就纳闷了,同样的代码为啥在不同的环境下会出现这个问题?这时很容易想到就是编码问题。

原因

我们知道get请求,参数经过编码后会加到请求的url后,get请求经过tomcat处理。这时能想到可能是tomcat编码的问题,查看我们两个人本地的tomcat配置文件,果然不一样,后端的tomcat配置文件加上了URIEncoding="UTF-8" ,可让Tomcat(默认ISO-8859-1编码)以UTF-8的编码处理get请求,此时能正常解析参数中的中文。

解决办法

1. 修改tomcat下的conf/server.xml文件,找到如下代码:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 

加上URIEncoding="UTF-8"

2. get请求修改为post请求。

最新文章

  1. MahApps.Metro打造拉风的桌面应用程序
  2. python读取文件夹
  3. C# ASP.NET 优化程序性能、降低内存使用、提高程序运行速度
  4. CentOS上安装spark standalone mode(转载)
  5. Ubuntu backlight
  6. python django 与数据库的交互
  7. Codeforeces 707B Bakery(BFS)
  8. 简易自定义下拉菜单 与简易默认下拉html片段
  9. OpenCV安装要点
  10. subclipse svn 在64位win7下报Failed to load JavaHL Library
  11. 更改linux系统时间
  12. 关于C++的疑问剖析
  13. 高仿拉手网底部菜单实现FragmentActivity+Fragment+RadioGroup
  14. 【转载】深入浅出http请求
  15. JarSearch
  16. HDU - 3966 Aragorn&#39;s Story(树链剖分入门+线段树)
  17. ceil和floor函数的编程实践
  18. 搜索引擎选择: Elasticsearch与Solr(转)
  19. ASP.NET MVC 常用路由总结
  20. Echarts 柱状图属性详解

热门文章

  1. Java Gradle入门指南之内建与定制任务类(buildSrc、Groovy等)
  2. druid连接池异常
  3. IIS安装和使用(Windows Server 2003)
  4. Java enum的用法详解
  5. kernel启动console_init之前console不可用时发生crash的调试方法
  6. Python所有的错误都是从BaseException类派生的,常见的错误类型和继承关系
  7. 【简易版】IOS仿periscope自制狂赞飘桃心
  8. Containers Reserved yarn resourcemanager
  9. python paramiko
  10. MMORPG大型游戏设计与开发(规范)