request.getParameter(“参数名”) 中文乱码解决方法

转载 2016年05月30日 11:26:45

]


解决问题,先要研究问题,URL传中文参数为什么会出现乱码?

原因:Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(造成中文乱码)

解决办法:我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流,然后再将其用utf-8解码成字符流

代码:


  1. String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8");  

这是通过转码的方式处理乱码问题,我们也可以通过Tomcat配置文件,设置URL编码集(URIEncoding)设置编码,这种方法也是一劳永逸的,

修改Tomcat/conf 目录下 server.xml


  1. <Connector port="8080" protocol="HTTP/1.1"   
  2.     connectionTimeout="20000"   
  3.     redirectPort="8444"   
  4.     useBodyEncodingForURI="true" URIEncoding="UTF-8"/>  

重点在 userBodyEncodingForURIURIEncoding 这两个属性

下面来解释一下这两个属性的意义

useBodyEncodingForURI参数表示是否用request.setCharacterEncoding参数对URL提交的数据和表单中GET方式提交的数据进行重新编码,在默认情况下,该参数为false。

URIEncoding参数指定对所有GET方式请求进行统一的重新编码(解码)的编码。

URIEncoding和useBodyEncodingForURI区别是,

URIEncoding是对所有GET方式的请求的数据进行统一的重新编码,

而useBodyEncodingForURI则是根据响应该请求的页面的request.setCharacterEncoding参数对数据进行的重新编码,不同的页面可以有不同的重新编码的编码

 

还有一种方法,通过重写getParameter方法,设置解码/方式来解决乱码问题,请参照:Java防止xss攻击 修改。

参考:>>>>https://wuzhuti.cn/1129.html


上面的是tomat,JETTY乱码解决如下:


-Dorg.eclipse.jetty.util.URI.charset=UTF8




关于request.getParameter方法获得参数乱码问题

相信很多java初学者在学习request对象的时候会遇到一个很奇怪的问题,我明明已经设置了request.setCharacterEncoding("UTF-8");和response.setCha...
  • jiyinsui8460
  • jiyinsui8460
  • 2017年04月17日 10:29
  • 1606

request.getParameter()在get和post方法中文乱码问题

乱码原因:Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(造成中文乱码) post请求: 假设提交请求的jsp页面是UTF-8编...
  • u013476542
  • u013476542
  • 2016年10月18日 06:16
  • 7180

Java Web后台通过request.getParameter( )方法得到的数据中文乱码

问题描述:     在“整合DataTables到JavaWeb(SSH)实例总结分析”中,发现在页面提交的中文数据,在后台会出现中文乱码 (例子链接: http://note.youdao.com/...
  • JusterDu
  • JusterDu
  • 2016年03月15日 08:44
  • 7162

拦截器利用装饰类的对getParameter()和getParameterValues()方法的重写对中文编码的转换

拦截器利用装饰类的对getParameter()和getParameterValues()方法的重写对中文编码的转换...
  • starjuly
  • starjuly
  • 2016年08月07日 00:26
  • 1143

JSP页面数据传递中文乱码- request.getParameter()

JSP页面数据传递中文乱码- request.getParameter()
  • NJUPT_T
  • NJUPT_T
  • 2016年01月03日 22:00
  • 7402

javaweb中中文乱码解决方法总结之response和request解决方法

javaweb中文乱码解决
  • bbb695480667
  • bbb695480667
  • 2016年12月21日 20:27
  • 2874

request.getParameter(“参数名”) 中文乱码解决方法

在Java 开发中,如果框架搭建的不完善或者初学者在学习过程中,出现中文乱码是经常的事儿(哈。谁让发明java语言的不是中国人呢) 今天跟大家分享几个解决java Web开发中,request....
  • wangdechuan7
  • wangdechuan7
  • 2015年12月28日 13:43
  • 142

解决ajax get方式提交中文参数乱码问题

问题:使用DWZ+SSH+Tomcat7 提交中文参数时,由于最后调用的是jquery ajax get方式提交,后台取到的参数总是乱码。 解决方法,将提交的URL连同参数调用两次encodeUR...
  • memoryzxj
  • memoryzxj
  • 2016年02月22日 11:25
  • 6060

Request和Reponse请求乱码问题

(doGet)Request请求乱码介绍: jsp中 首行设置编码格式 表单所在页面使用神马格式解码, 那么该页面就使用神马格式编码 乱码分析: 服务器默认的编码格式...
  • qq_21434959
  • qq_21434959
  • 2016年09月25日 00:12
  • 823

request.getParameter(“参数名”) 中文乱码解决方法

在Java 开发中,如果框架搭建的不完善或者初学者在学习过程中,出现中文乱码是经常的事儿(哈。谁让发明java语言的不是中国人呢) 今天跟大家分享几个解决java Web开发中,request....
  • fjseryi
  • fjseryi
  • 2015年11月13日 13:01
  • 632
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:request.getParameter(“参数名”) 中文乱码解决方法
举报原因:
原因补充:

(最多只允许输入30个字)