程序员

编码和解码

2018-11-28  本文已影响0人  senpaiLi

编码(计算机编程语言的代码)是信息从一种形式或格式转换为另一种形式的过程。

字符集(字符编码的一个集合)

将一些自然语言中的字符组成一个集合,并对集合中的每个字符制 定规范化的编码方式,这个字符的集合和规范化的编码方式就组成了一个字符集。
如ASCII字符集里面包括了所有的英文字母,并且指定了这些英文字母的编码 规则。
GB2312、BIG5、GBK、GB18030、Unicode等字符集里面包括了常用的简体汉字,并且指定了这些简体汉字的编码规则。

为什么需要编码

编码主要是为了信息加密和信息交换。当数据不利于处理、存储的时候,就需要对它们进行编码。

如何编码和解码

从根本上来讲,编码、解码只是在做翻译工作,将一种形式的数据翻译为另一种形式的数据。
最简单的编码、解码就是相当于从一个Map中根据key查找value,然后使用value代替实际数据中的key的值。
稍微复杂一点儿的编码如javascript中的encodeURIComponent和decodeURIComponent,encodeURIComponent负责将字符串中不符合URL编码规范的字符转换为“%”形式的十六进制Unicode内码序列,decodeURIComponent负责将“%”形式的十六进制Unicode内码序列转换为实际的字符。

URL的编码

URL是采用ASCII字符集进行编码的,所以如果URL中含有非ASCII字符集中的字符,那就需要对其进行编码。
其次,由于URL中好多字符是保留字,他们在URL中具有特殊的含义。如“&”表示参数分隔符,如果想要在URL中使用这些保留字,那就得对他们进行编码。

编码规则:
根据2005年发布的RFC3986“%编码”规范:对URL中属于ASCII字符集的非保留字不做编码;对URL中的保留字需要取其ASCII内码,然后加上“%”前缀将该字符进行替换(编码);对于URL中的非ASCII字符需要取其Unicode内码,然后加上“%”前缀将该字符进行替换(编码)。由于这种编码是采用“%”加上字符内码的方式,所以,有些地方也称其为“百分号编码”。

上一篇下一篇

猜你喜欢

热点阅读