编码转码的简单记录

1.参考 https://www.cnblogs.com/LuckyBao/p/5950607.html
2.出现乱码的本质原因是编码方式和解码显示的方式不同,比如浏览器默认gbk,放到web容器里默认是iso8859-1,gbk的编码,在iso里含义不同或者没有,所以需要先用iso解码,再重新用gbk编码
3.字节和字符之间的对应关系就是字符集
4.另一种是URI编码,这种其实是用另一种字符方式表示字符,而非字节和字符的转化
(1).如果是中文的gbk(GB2312)编码,则一个汉字对应两组%xx,即%xx%xx
(2).如果是中文的UTF-8编码,则一个汉字对应三组%xx,即%xx%xx%xx
5.浏览器向应用服务器发送请求一般通过三种方式:1.提交表单,2.超链接,3.Ajax;
表单提交:post采用页面编码方式提交;get采用页面编码方式并进行URI转码后拼接到url后面提交
超链接(如window.open或者a标签等):需要用encodeURI()函数转码为uri编码,否则会将汉字显示成??
6.不同服务器默认解码方式不同,tomcat5.5中getParameter获取get方法或超链接传过来的参数时默认会用ISO8859-1进行解码,例如浏览器发送UTF-8的编码的请求,tomcat5.5的getParameter使用ISO8859-1解码,这时的结果是错的,如果要获得正确的值,需要在tomcat5.5的getParameter的时候采用UTF-8进行解码,先然后使用UTF-8字符集解码为字符串:new String(getParameter().getBytes(“ISO8859-1”),“UTF-8”)
7.从服务器向浏览器输出时,服务器向浏览器发送的也是经过编码成字节流在网络上传输,浏览器接收到字节流之后使用指定的字符集解码成字符串再进行展现,如果这两个环节的字符集不一致也会导致乱码的问题,如果在servlet中直接进行输出,可以通过response.setCharacterEncoding(“UTF-8”),setContentType(“text/html;charset=UTF-8”),setHeader(“Content-Type”,“text/html;charset=UTF-8”)进行设置

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值