发表文章

[最新] Requset与Response中文乱码问题解决总结

qq40281969 3月前 1

request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。

Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应作用就是与客户端交互

 

请求方式有8中,只讨论get与post

请求处理的方式区别对待  超链接默认是get 、表单提交method 方式post或者get

对于get请求

方法一: 来一个请求处理一个请求。  

 tomcat默认的编码格式就是ISO-8859-1

例如、name=new String(name.getBytes("ISO-8859-1"),"UTF-8");

这是string类的方法(查手册)

 byte[]

getBytes(Charset charset) 
          使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。

但是这样局限性太大,如果获取很多的参数,这样是繁琐的; 

方法二: 2、修改tomcat: 在tomcat 安装目录下的conf文件夹下的server.Xml文件大概60行

修改为 <Connector port="8088" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" useBodyEncodingForURI="true"/>

也就是添加useBodyEncodingForURI="true"这个属性

解释:

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

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

    例如设置请求编码格式UTF-8 :request.setCharacterEncoding("UTF-8");

这个就很灵活了,想使用什么编码格式就传递相应的编码格式。

对于post请求

很简单只要request.setCharacterEncoding("UTF-8");就成功了(这个与tomcat的server.xml文件更改没有关系,可以自行证明)

 设置请求体的文字编码 格式,一定写在获取参数之前

 

Response负责返回数据给客户端:

输出数据到页面:

   1、:响应的格式改成UTF-8

response.setCharacterEncoding("UTF-8");

2、:指定浏览器编码:

response.setHeader("Content-Type", "text/html;charset=UTF-8");在dopost与doget中有效;

//默认的编码是ISO-8859-1

处理中文乱码

方法一、使用   response.setCharacterEncoding("UTF-8");

             response.setHeader("Content-Type", "text/html;charset=UTF-8");

方法二、response.setContentType("text/html;charset=utf-8");  这个方法相当于是方法一的两个的综合;

 

相关推荐
最新评论 (0)
返回
发表文章
qq40281969
文章数
1
评论数
0
注册排名
1366723