Http GET 请求参数中文乱码
两种解决方式
第1种:代码里转换
String name = request.getParamter("name");
String nameUtf8 = new String(name.getBytes("ISO8859-1"), "UTF-8");
第2种:修改Tomcat配置
TOMCAT_HOME/conf/server.xml
....
<!-- 修改前 -->
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
<!-- 修改后 -->
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
           	   URIEncoding="UFT-8"/>
注意:
百度到的结果一般都是上面这两种解决方法。
第一种方法太麻烦了,get请求里有十几个参数,难道都要一个一个的 new String(name.getBytes("ISO8859-1"), "UTF-8"); 吗?这样的代码笨重,且修改时不小心就会出错。
第二种方法很好,但要注意:tomcat7 及以上版本默认都设置了 URIEncoding="UFT-8",不必再去手动设置。这一点,百度到的博客里一个说的都没有,全都是互相转载,不知多少年前的了。最好的办法就是看官方文档。
我本地和测试环境下get请求参数值中文都是正常的,一到生产就乱码了,查不到数据。花了两个多小时后才确定是开发和生产环境不同导致的
查看当前tomcat版本
# 进入 TOMCAT_HOME/bin,执行 version.sh 查看当前tomcat版本
[root@jtdev bin]# sh version.sh
/opt/tomcat9/logs/catalina.out
Using CATALINA_BASE:   /opt/tomcat9
Using CATALINA_HOME:   /opt/tomcat9
Using CATALINA_TMPDIR: /opt/tomcat9/temp
Using JRE_HOME:        /usr/java8/jdk1.8.0_11/jre
Using CLASSPATH:       /opt/tomcat9/bin/bootstrap.jar:/opt/tomcat9/bin/tomcat-juli.jar
Server version: Apache Tomcat/9.0.35
Server built:   May 5 2020 20:36:20 UTC
Server number:  9.0.35.0
OS Name:        Linux
OS Version:     2.6.32-504.el6.x86_64
Architecture:   amd64
JVM Version:    1.8.0_11-b12
JVM Vendor:     Oracle Corporation
查看官方文档
TOMCAT_HOME/webapps/docs 目录下保存的就是当前版本的文档,当启动tomcat后,访问 http://host:port/docs 即可
- 选择左侧Referance菜单栏下的 Configuration,进入配置项说明页面
 - 再选择左侧Connectors菜单栏下的 HTTP/1.X ,进入Connector元素配置项说明
 - 全局搜索 URIEncoding
 
| URIEncoding | This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. The default value is UTF-8. | 
|---|
Http GET 请求参数中文乱码的更多相关文章
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
		
前述: 在写这篇笔记之前,对笔记中的设计模式进行介绍: 本篇笔记中将要使用到的设计模式是:装饰(包装)设计模式 (1)装饰(包装)设计模式口诀: ...
 - 详解get请求和post请求参数中文乱码的解决办法
		
首先出现中文乱码的原因是tomcat默认的编码方式是"ISO-8859-1",这种编码方式以单个字节作为一个字符,而汉字是以两个字节表示一个字符的. 一,get请求参数中文乱码的解 ...
 - java web项目get,post请求参数中文乱码解决
		
[转载]原文地址:https://www.cnblogs.com/tom-plus/p/6392279.html 在开发过程中,有时候会碰到get,post请求参数中文乱码. 原因: Http请求传输 ...
 - get请求和post请求参数中文乱码的解决办法
		
get请求参数中文乱码的解决办法 在tomcat的server.xml里的Connector加个URIEncoding="UTF-8",把 <Connector connec ...
 - JSP中解决获取请求参数中文乱码问题
		
分两种情况: 1.获取访问请求参数时乱码 解决方法:构造一个新的String String user = new String(request.getParameter("user" ...
 - postman测试请求参数中文乱码问题
		
用IDEA调试代码时,用postman测试请求url,发现post或者get请求中参数是中文的话,后台获取的参数是乱码, 一般两个方面 发送请求的一方:postman的问题 接受请求的一方:tomca ...
 - Spring MVC的Post请求参数中文乱码的原因&处理
		
一.项目配置: Spring 4.4.1-RELEASE Jetty 9.3.5 JDK 1.8 Servlet 3.1.0 web.xml文件中没有配置编解码Filter 二.实际遇到的问题:客户端 ...
 - 解决jmeter 请求参数中文乱码
		
今天在用jmeter 写脚本时发现查看结果树request post请求中文参数值是乱码,故记录下解决过程. 解决过程如下: 1.修改本地配置文件 因为此处的数据,还没有发送出去,所以,肯定是这个变量 ...
 - SpringMVC  接收表单数据、数据绑定、解决请求参数中文乱码
		
接收表单数据有3种方式. 1.使用简单类型接收表单数据(绑定简单数据类型) 表单: <form action="${pageContext.request.contextPath}/u ...
 
随机推荐
- Mybatis Plus使用租户过滤无效解决方案
			
异常内容: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.Pe ...
 - 启动一个线程是调用 run()还是 start()方法?
			
启动一个线程是调用 start()方法,使线程所代表的虚拟处理机处于可运行状态, 这意味着它可以由 JVM 调度并执行,这并不意味着线程就会立即运行.run()方 法是线程启动后要进行回调(callb ...
 - MariaDB CTE公用表达式
			
公用表达式(Common Table Expressions,简称CTE) Maria DB 版本为10.2.2以上的才支持 WITH 语法 CTE 介绍 WITH关键字表示公用表表达式(CTE) 它 ...
 - MySQL 如何优化 DISTINCT?
			
DISTINCT 在所有列上转换为 GROUP BY,并与 ORDER BY 子句结合使用. SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;
 - Linux用户无法使用sudo命令
			
新建的用无法使用sudo命令,出现这样的提示: xiaojing is not in the sudoers file. This incident will be reported 原来是新建的用户 ...
 - js里面是没有Trim()这个方法的可以用以下的形式来判断是否输入的值为空
			
if (text.value.replace(/\s+/g, "").length == 0)
 - 项目启动的缓慢之“Build completed with 1 error and 18 warnings in 3 m 51 s”
			
一.问题 idea编译项目writing classes很慢,等很久之后项目也启动不起来,如下图 二.解决方案 1.File->Invalidate Caches/Restart...清下缓存 ...
 - 细说Web API中的Blob
			
在一般的Web开发中,很少会用到Blob,但Blob可以满足一些场景下的特殊需求.Blob,Binary Large Object的缩写,代表二进制类型的大对象.Blob的概念在一些数据库中有使用到, ...
 - 什么是jsp?jsp的内置对象有哪些?
			
这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: [什么是jsp? ...
 - 用jq实现移动端滑动轮播以及定时轮播效果
			
Html的代码: <div class="carousel_img"> <div class="car_img" style="ba ...