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

Stella981
• 阅读 624

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

       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编码

点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
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
3年前
Jenkins maven 构建乱码,修改file.encoding系统变量编码为UTF
一切都是windows的控制台默认编码GBK问题情景:使用jenkins构建,console输出的中文乱码。代码编码格式是utf8,因为Jenkins会默认读取当前系统的编码格式,导致构建日志乱码和selenium自动化测试输入的中文乱码。控制台输出乱码!(https://oscimg.oschina.net/oscnet/4
Stella981 Stella981
3年前
Android学习系列笔记(五)
Android基础网络第二天1post方式提交数据乱码的解决一般在公司开发客户端和服务端的编码要保持一致。android端的默认编码是utf8;做url请求时需要对参数进行URLEncode编码.URLurlnewURL("http://1
Wesley13 Wesley13
3年前
Java 使用 ResourceBundle 类读取 properties 文件中文乱码的解决方案
Java使用java.util.ResourceBundle类的方式来读取properties文件时不支持中文,要想支持中文必须将文件设置为ISO88591编码格式,这对于开发工具默认为UTF8来说很不友好,而且就算用ISO88591编码,当其他人将这个项目导入开发工具时很容易出现这个properties文件中的内容有乱码(前提是该文件中包含中文)
Easter79 Easter79
3年前
SpringMvc接受特殊符号参数被转义
WEB开发时,在前端通过get/post方法传递参数的时候 如果实参附带特殊符号,后端接收到的值中特殊符号就会被转义例如该请求: http://localhost:10001/demo/index.do?name张三(1)注:中文()不会出现此种情况后台就收到的实际name值为:  张三&40;1&41;&40;其实为h
Wesley13 Wesley13
3年前
HTTP之请求响应中文乱码小结
1.response响应中文乱码(1)乱码原因:服务器的编码方式和浏览器的解码方式不一致导致解决方案:统一服务器和浏览器的编码解码方式,都使用utf8代码实现:response.setContentType("text/html;charsetutf8");2.request请求中文乱码(1)post请求乱码  
Wesley13 Wesley13
3年前
Java乱码
1.Javascript传参乱码:在浏览器端对要传递的中文参数进行编码处理.代码如下:xmlhttp.open("POST",url,true);//请求参数初始化xmlhttp.setRequestHeader("ContentType","application/xwwwformurlencoded");//因为请求方式为PO
天航星 天航星
3个月前
VSCode 控制台中文乱码(永久性解决)
在Windows上使用VSCode进行开发时,经常会遇到控制台中文乱码的情况,设置编码往往都无效或者不能永久性解决。归根到底,是因为Windows中文版系统cmd编码默认为GBK,而VSCode默认新建文件的编码为UTF8,所以会出现中文乱码情况。要想永久