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 开发中,如果框架搭建的不完善或者初学者在学习过程中,出现中文乱码是经常的事儿(哈。谁让发明java语言的不是中国人呢) 今天跟大家分享几个解决java Web开发中,request....
  • fjseryi
  • fjseryi
  • 2015年11月13日 13:01
  • 545

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

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

使用request.getParameter()读取参数时出现的中文乱码现象

在服务器端用request.getParameter()读取参数时,很容易出现中文乱码现象,其中有很多种方法可以显示出中文,以下先列出一种方法: 源程序: request.getParamete...

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

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

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

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

解决request.getparameter中文乱码问题。

本文是解决request.getparameter中文乱码问题。 在Java web编程中经常遇到中文乱码问题。让人一直头疼。 重点:全部统一为utf-8编码,兼容性好 解决方案分以下几种...

request.getparameter中文乱码问题解决方案

request.getparameter中文乱码问题解决方案   百度经验:jingyan.baidu.com 本文是解决request.getparameter中文乱码问题。 ...

request.getParameter中文乱码问题

http请求是以ISO-8859-1的编码来传送url的 如果页面的content-type为utf-8,那么在发送请求时,会将字符转成utf-8后进行传送 如: 中 的UTF-8编码为:E4 B8 ...

JSP传递参数中文乱码问题的一种解决方法

最近经常会遇到中文乱码的问题,在解决问题的过程中,我又得知了一种蛮好的解决方法: ;   例如: index.jsp文件     pageEncoding="gb2312"%> htt...

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

javaweb中文乱码解决
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:request.getParameter(“参数名”) 中文乱码解决方法
举报原因:
原因补充:

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