GET请求传递中文参数出现乱码问题(适用于Tomcat服务器)

Stella981
• 阅读 453

      中文参数乱码的问题,归根到底就是编码与解码时格式不一致导致的。要解决这类问题,首先就得分析前台传参是以什么格式对请求进行编码的,后台再以相应的格式进行解码就可以了。

       Tomcat的默认编码是ISO-8859-1,当Tomcat收到GET请求时,它会使用ISO-8859-1对请求进行编码,因此Java后台在接收这些中文参数时,必须使用ISO-8859-1进行解码,再以UTF-8的格式进行编码,才能得到正确的中文参数.

这种情况可以有两种方法来解决编码问题:

1.通过修改Tomcat的默认编码方式为UTF-8解决乱码问题

在tomcat的conf目录下,编辑server.xml配置文件,找到下面的代码

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

添加URIEncoding="UTF-8"

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" 
redirectPort="8443" />

       2.在WEB项目中增加一个字符编码转换的拦截器,将ISO-8859-1编码转换成UTF-8编码

点赞
收藏
评论区
推荐文章
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
java编码问题总结
对于Java,由于默认的编码方式是UNICODE,所以用中文也易出问题,常见的解决是:Strings2newString(s1.getBytes(“ISO88591”),”GBK”);1、utf8解决JSP中文乱码问题一般说来在每个页面的开始处,加入:<%@pagelanguage"java"contentTyp
皕杰报表在传参过程中乱码
当web项目的编码格式为UTF8的,在tomcat上集成部署,传参时中文乱码时,需要修改下列编码格式。​​解决方案:1、更改D:/Tomcat/conf/server.xml,指定浏览器的编码格式为“UTF8”:2、更改web项目WEBINF\resources下的Congfig.xml里的            UTF83、更改jsp中编码格式为utf8​
Stella981 Stella981
2年前
Jenkins maven 构建乱码,修改file.encoding系统变量编码为UTF
一切都是windows的控制台默认编码GBK问题情景:使用jenkins构建,console输出的中文乱码。代码编码格式是utf8,因为Jenkins会默认读取当前系统的编码格式,导致构建日志乱码和selenium自动化测试输入的中文乱码。控制台输出乱码!(https://oscimg.oschina.net/oscnet/4
Stella981 Stella981
2年前
Android学习系列笔记(五)
Android基础网络第二天1post方式提交数据乱码的解决一般在公司开发客户端和服务端的编码要保持一致。android端的默认编码是utf8;做url请求时需要对参数进行URLEncode编码.URLurlnewURL("http://1
Wesley13 Wesley13
2年前
Java 使用 ResourceBundle 类读取 properties 文件中文乱码的解决方案
Java使用java.util.ResourceBundle类的方式来读取properties文件时不支持中文,要想支持中文必须将文件设置为ISO88591编码格式,这对于开发工具默认为UTF8来说很不友好,而且就算用ISO88591编码,当其他人将这个项目导入开发工具时很容易出现这个properties文件中的内容有乱码(前提是该文件中包含中文)
Stella981 Stella981
2年前
Python字符编码 中文乱码
<centerPython字符编码中文乱码</centerPython中可能会出现各种各样的中文乱码问题,在python程序运行中,有三个地方与编码直接相关1.系统默认编码windows系统默认编码为GBK,Linux系统默认为UTF8(不知道是不是所有Linux都默认UTF8,但至少Ubuntu是UTF8)意味着在Li
Easter79 Easter79
2年前
SpringMvc接受特殊符号参数被转义
WEB开发时,在前端通过get/post方法传递参数的时候 如果实参附带特殊符号,后端接收到的值中特殊符号就会被转义例如该请求: http://localhost:10001/demo/index.do?name张三(1)注:中文()不会出现此种情况后台就收到的实际name值为:  张三&40;1&41;&40;其实为h
Wesley13 Wesley13
2年前
HTTP之请求响应中文乱码小结
1.response响应中文乱码(1)乱码原因:服务器的编码方式和浏览器的解码方式不一致导致解决方案:统一服务器和浏览器的编码解码方式,都使用utf8代码实现:response.setContentType("text/html;charsetutf8");2.request请求中文乱码(1)post请求乱码  
Wesley13 Wesley13
2年前
Java乱码
1.Javascript传参乱码:在浏览器端对要传递的中文参数进行编码处理.代码如下:xmlhttp.open("POST",url,true);//请求参数初始化xmlhttp.setRequestHeader("ContentType","application/xwwwformurlencoded");//因为请求方式为PO