POST&GET请求,响应乱码问题解决办法

(POST请求放在请求体中,而GET请求在浏览器的地址栏中)

POST请求乱码问题:

假设这样的场景:在浏览器中有一个表单,我们在表单中输入了中文汉字,在Servlet中的doPost中,我们尝试获取这个参数并进行打印,在浏览器提交了请求之后发现在服务器控制台打印的是中文乱码。如何解决这个问题?

在获取这这个参数之前,设置

request.setCharacterEncoding("UTF-8");

注意:这句设置必须在第一次获取请求参数之前

GET请求的乱码问题

和上面的POTS请求一样的场景,如果我们使用相同的方法来设置,最后发现依然会出现乱码的问题,为什么呢?以为Get请求是在地址栏中传递的, 在到达Servlet之前,已经被服务器解析过,即已经乱码了,所以要这样解决:在TomCat服务器的server.xml配置文件的第一个Connector标签中添加:

URIEncoding ="UTF-8"

POST和GRT的响应乱码的问题:

场景是这样的:Servlet对于浏览器提出的请求做出了响应之后,给浏览器响应了中文,结果在浏览器接收到响应解析之后,发现有中文乱码,如何解决?在请求的响应之前设置:

response.setContentType("text/html;charset=UTF-8");

F11在浏览器中查看响应头,会发现多了一条内容:Content-Type: text/html ; characterset :utf - 8; 这个响应头告诉浏览器,服务器响应的是一个HTML页面,使用的字符集是UTF-8,所以浏览器就会使用UTF-8 来解码,就不会出现乱码问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值