失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Http GET 请求参数中文乱码

Http GET 请求参数中文乱码

时间:2023-12-18 10:35:20

相关推荐

Http GET 请求参数中文乱码

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.outUsing CATALINA_BASE: /opt/tomcat9Using CATALINA_HOME: /opt/tomcat9Using CATALINA_TMPDIR: /opt/tomcat9/tempUsing JRE_HOME: /usr/java8/jdk1.8.0_11/jreUsing CLASSPATH: /opt/tomcat9/bin/bootstrap.jar:/opt/tomcat9/bin/tomcat-juli.jarServer version: Apache Tomcat/9.0.35Server built: May 5 20:36:20 UTCServer number: 9.0.35.0OS Name: LinuxOS Version:2.6.32-504.el6.x86_64Architecture: amd64JVM Version: 1.8.0_11-b12JVM Vendor:Oracle Corporation

查看官方文档

TOMCAT_HOME/webapps/docs 目录下保存的就是当前版本的文档,当启动tomcat后,访问 http://host:port/docs 即可

选择左侧Referance菜单栏下的 Configuration,进入配置项说明页面再选择左侧Connectors菜单栏下的 HTTP/1.X ,进入Connector元素配置项说明全局搜索 URIEncoding

如果觉得《Http GET 请求参数中文乱码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。