javaWeb中的编码和解码

使用的是tomcat

GET请求

编码:

pathInfo: utf-8

queryString: gbk

解码:

pathInfo: tomcat配置文件中的<Connector URIEncoding="utf-8">

queryString: 要么是Header中的content-Type中的charset,要么是默认的ISO-8859-1。要使用contentType中的编码,就要设置<Connector URIEncoding="utf-8" useBodyEncodingForURI="true">为true


POST请求

编码:按照页面的content-type来编码

解码:先设置request.setCharacterEncoding(charset),然后再request.getParameter。由于POST请求的解码可以控制,所以不容易出错。如果不设置,那么首先默认使用的是content-type中的charset(但是提交请求时候不会设置该charset),而后是ios-8859-1。

注意:1.第一次调用request.getParameter之前就要调用request.setCharacterEncoding(charset),否则后面都出错。2.对于文件,使用的是字节流传送到服务器端的临时目录,所以这过程不涉及编码。但是添加到request的parameter时候才使用request.setCharacterEncoding(charset)设置的编码。否则使用IOS8859-1


http响应:

编码/解码:使用response.setCharacterEncoding来设置,他会覆盖request.getCharacterEncoding的值,并通过header中的content-type返回给客户端,浏览器将会按照这个来解码,如果没有content-type,那么会按照<meta http-equiv='content-type' content='text-html';charset=gbk>中的charset来解码,如果还没有那就按照浏览器默认编码来显示



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值