处理request接收参数的中文乱码的问题:

? POST的解决方案:

* POST的参数在请求体中,直接到达后台的Servlet.数据封装到Servlet中的request中.request也有一个缓冲区.request的缓冲区也是ISO-8859-1编码.

* 设置request的缓冲区的编码:

* request.setCharacterEncoding(“UTF-8”);  --- 一定要在接收参数之前设置编码就OK.

? GET的解决方案:

* 1.修改tomcat的字符集的编码.(不推荐)

* 2.使用URLEncoder和URLDecoder进行编码和解码的操作.

* 3.使用String的构造方法:

String(byte[] bytes, String charsetName)
          通过使用指定的 charset 解码指定的 byte 数组,构造一个新的String。

String filename = new String(request.getParameter("filename").getBytes("ISO-8859-1"),"UTF-8");

时间: 2024-10-27 10:15:58

处理request接收参数的中文乱码的问题:的相关文章

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

今天浏览项目时候,遇到一个问题,页面用${requestScope.参数名 }获取的值是乱码,然后搜了一下,最后说是编码的问题,附上查找的结果: 在Java 开发中,如果框架搭建的不完善或者初学者在学习过程中,出现中文乱码是经常的事儿(哈.谁让发明java语言的不是中国人呢) 今天跟大家分享几个解决java Web开发中,request.getParameter()获取URL中文参数乱码的解决办法 解决问题,先要研究问题,URL传中文参数为什么会出现乱码? 原因:Http请求传输时将url以IS

Request 接收参数乱码原理解析二:浏览器端编码原理

上一篇<Request 接收参数乱码原理解析一:服务器端解码原理>,分析了服务器端解码的过程,那么浏览器是根据什么编码的呢? 1. 浏览器解码 浏览器根据服务器页面响应Header中的“Content-Type: text/html; charset=gb2312”解码.修改web.config中“responseEncoding=utf-8”,发现服务器页面响应Header变成了“Content-Type: text/html; charset=utf8”. <system.web&g

Request 接收参数乱码原理解析

起因: 今天早上被同事问了一个问题:说接收到的参数是乱码,让我帮着解决一下. 实际情景: 同事负责的平台是Ext.js框架搭建的,web.config配置文件里配置了全局为“GB2312”编码: <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312" culture="zh-CN"/> 当前台提交

Request 接收参数乱码原理解析一:服务器端解码原理

“Server.UrlDecode(Server.UrlEncode("北京")) == “北京””,先用UrlEncode编码然后用UrlDecode解码,这条语句永远为true吗?答案是否定的,结果可能与很多人预想的不大一样.本文主要分析这一问题出现的原理,研究下Server.UrlEncode(),Server.UrlDecode(),Request["xxx"]三个函数与编码方式的关系. 1. 问题出现的情景 网站采用了GB2312编码,在Web.confi

[转] Request 接收参数乱码原理解析

起因: 今天早上被同事问了一个问题:说接收到的参数是乱码,让我帮着解决一下. 实际情景: 同事负责的平台是Ext.js框架搭建的,web.config配置文件里配置了全局为“GB2312”编码: <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312" culture="zh-CN"/> 当前台提交

JSP内置对象-request传来的数据中文乱码处理

JSP的内置对象request可以接收从客户端传来的参数信息,即用户提交的信息,但是当requesr获取客户端提交的汉字信息时,会出现乱码(仅限中文). 我们可以对该汉字字符进行重新编码,很简单,看代码: 我们先建一个客户端信息提交页面,提交中文: 现在我们新建一个服务器接收页面用来显示出客户端传来的参数信息: 可以看到我们用JSP内置对象request接收显示客户端传来的参数时出现了乱码 怎么处理,我们只需要把request传来的参数进行重新编码,就简单的一行代码: 现在再来看看结果: 现在就

(转)request和response的中文乱码问题

request乱码指的是:浏览器向服务器发送的请求参数中包含中文字符, 服务器获取到的请求参数的值是乱码; response乱码指的是:服务器向浏览器发送的数据包含中文字符,浏览器中显示的是乱码; 乱码产生的原因:不管是request乱码还是response乱码,其实都是由于客户端(浏览器)跟服务器端采用的编码 格式不一致造成的. 以request乱码为例:浏览器向服务器发送请求,因为浏览器与服务器之间的通信实质上是socket流,所以要先 将请求参数(字符)转换成字节,也就是编码过程,服务器接

java中URL参数的中文乱码问题

**同学们在url传参的时候 是否应为传了中文导致各种乱码问题呢? URL传参中文对于程序员来说,是个很头疼的问题吧.虽然在尽量避免使用中文参数,但总有避免不了的时候.现就自己的经验,总结如下:** 1.将字符串转码:newString("xxxxx".getBytes("iso-8859-1"),"utf-8") 这种转码方式有很大的弊端,因为它是使用指定的字符集将此String编码为 byte 序列,并将结果存储到一个新的byte 数组中,然

A标签中传递的中文参数到Servlet 后台request.getParameter()接收时出现中文乱码

package util; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Se