URL编码

url中文编码

含中文的URL需要编码后才能在网络中传输,对于下面这个URL
http://www.oschina.net/search?scope=bbs&q=流行
编码为http://www.oschina.net/search?scope=bbs&q=%E6%B5%81%E8%A1%8C
这个例子中对流行UTF-8编码,每个汉字编码成3个%xx。
如果使用gbk(GB2312)编码,一个汉字对应两组%xx,即%xx%xx

一个好用的在线编码转换器:https://tool.oschina.net/encode?type=2

unicode 与utf-32、utf-16

Unicode 是字符集,UTF-8 是编码规则

  • Unicode为世界上所有字符都分配了一个唯一的数字编号,这个编号范围从 0x000000 到 0x10FFFF(十六进制),有110多万,每个字符都有一个唯一的Unicode编号,这个编号一般写成16进制,
  • 它是一种规定,Unicode本身只规定了每个字符的数字编号是多少,并没有规定这个编号如何存储。比如:马的Unicode为:U+9A6C

utf32指将Unicode编码直接按二进制存储

  • 每个字符实际需要24bit,但考虑到计算机的存储器是方便处理32位的数据而不方便处理24位的数据,所以一个utf-32编码的字符占4个字节
  • 由于存储和处理单元是32位所以需要考虑大小端的问题。

UTF-16使用变长字节表示

  • 对于编号在U+0000到U+FFFF的字符(常用字符集),直接用两个字节表示。
  • 编号在 U+10000到U+10FFFF之间的字符,需要用四个字节表示。
  • UTF-16 也有字节的顺序问题(大小端),所以就有UTF-16BE表示大端,UTF-16LE表示小端。

utf-8

UTF-8就是使用变长字节表示,顾名思义,就是使用的字节数可变,这个变化是根据 Unicode 编号的大小有关,编号小的使用的字节就少,编号大的使用的字节就多。使用的字节个数从1到4个不等。

UTF-8的编码规则:

  • 对于单字节的符号,字节的第一位设为0,后面的7位为这个符号的Unicode码,因此对于英文字母,UTF-8编码和ASCII码是相同的。

② 对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10,剩下的没有提及的二进制位,全部为这个符号的Unicode码 。

Unicode编号范围与对应的UTF-8二进制格式 :

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值