web应用编码处理

http urlencode:

url只允许使用ascii字符集;

允许的字符包括:1,字符 "a" 到 "z"、"A" 到 "Z" 和 "0" 到 "9";2,特殊字符 "."、"-"、"*" 和 "_";。

其他任何字符需要urlcoding。

字符首先根据编码转换,然后每2个字节前面放置一个%号;

空格转换成+号。

所使用的编码是html Content-type中的编码,通常为UTF-8。

jquery $(selector).serialize() 自动 urlencode。

tomcat中编码设置:

URIEncoding:urldecode时使用的编码,默认为 iso-8859-1,线上配置为 gbk。

useBodyEncodingForURI:Content-type中设置的编码当作urldecode的编码;如果调用 request.setCharacterEncoding,起同样的作用。线上配置为 true。

servlet编码设置:

request.setCharacterEncoding:设置 http request body 的编码;在读取第一个参数前设置。

struts2编码设置

<constant name="struts.i18n.encoding" value="UTF-8" />;相当于调用 request.setCharacterEncoding("utf-8")

针对不同的请求设置不同的编码:

struts2不能动态配置,需要重写StrutsPrepareAndExecuteFilter,注释掉第77行, prepare.setEncodingAndLocale(request, response);

自定义个一个 servlet filter,根据请求动态设置编码;

velocity编码设置:

input.encoding=GBK
output.encoding=GBK
output.encoding=    设置 response 的编码

转载于:https://my.oschina.net/astute/blog/148288

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值