四时宝库

程序员的知识宝库

一种新的Url编码格式,类似于utf8的变长编码

现在URL使用ASCII编码,这在URL中包含汉字时有两个缺点,第一不可读,百分号编码后的汉字你不知道什么意思。第二,每个汉字用百分号转义占用6个字节,占用空间大。

用utf-16等固定长度编码,会使ascii字符也占用2个字节,当英文较多时占用空间较大,且不兼容ASCII编码。

用utf-8变长编码,向正确方向迈出一步,比较好,但是其缺点是设计有容错码,表示汉字要3个字节,当汉字较多时,空间太大,url的空间是有限制的,无论多少。

所以,应该有一种新字符编码,即能最小化百分号编码数,使人类更可读,又能使占用的字节数最小化。

新的URL字符编码格式如下:

首字节以0开始时,每字符占1字节,兼容ASCII码。

首字节以10开始时,每字符占2字节,能表示最大16,384个字符。

首字节以110开始时,每字符占3字节,能表示最大2,097,152个字符。

首字节以1110开始时,每字符占4字节,能表示最大268,435,456个字符。

以此类推,根据首字节前导1的个数,来确定字符所占的字节数。

这里无需容错码,因为URL数据必须完全匹配,错误就对不上了,不可能错。

Unicode 13.0 adds 5,930 characters, for a total of 143,859 characters. (2020 March 10)

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接