Requset与Response中文乱码问题解决总结

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值