前嗅教你大数据:常见几种编码介绍
作者 | 前嗅
来源 | 前嗅大数据(www.forenose.com)
为什么要编码?
大家可以先思考个问题:
计算机是如何表示我们人类能够理解的符号的,也就是我们人类使用的语言。
人类的语言有太多了,因而表示这些语言的符号太多。
我们无法用计算机中一个基本的存储单元—— byte 来表示。
因而必须要经过拆分或一些翻译工作,才能让计算机能理解。
我们可以把计算机能够理解的语言假定为英语,其它语言要能够在计算机中使用必须经过一次翻译,把它翻译成英语。
这个翻译的过程就是编码。
所以可以想象只要不是说英语的国家要能够使用计算机就必须要经过编码。
常见的编码有以下几种:
1. Unicode(Unicode Character Set)
Unicode 包含除键盘以外的编码是 Unicode,又称统一码、万国码、单一码、标准万国码。
Unicode 在 js、json 里出现的比较多。
其格式为:\u+4 位字符串\
例如:\u4e2d\ \u4e2d\
2. ASCII
美国信息交换标准代码,标准 ASCII 码也叫基础 ASCII 码。
使用 7 位二进制数(剩下的 1 位二进制为 0)来表示所有的大写和小写字母,数字 0—9、标点符号以及在美式英语中使用的特殊控制字符。
3. URL 编码
URL 编码原理是使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符。
可以避免 Url 中有些字符会引起歧义。
URI 编码就是一个字符的 ASCII 码,它的 ACSII 码的十六进制式,在前面加上"%",就是它的 URL 编码。
例如:"/"的 ASCII 码是 92,92 的十六进制是 5c, 所以"/"的 URI 编码就是 %5c
"胡"的 ASCII 码是-17670, 它的十六进制是 BAFA, 所以它的 URI 编码就是 "%BA%FA"
4. Native 编码
每个国家都有自己的 Native 编码,中国的是 GBK(Chinese Internal Code Specification)。
GBK 编码,是在 GB2312-80 标准基础上的内码扩展规范,使用了双字节编码方案,其编码范围从 8140 至 FEFE(剔除 xx7F),共 23940 个码位。
GBK 编码共收录了 21003 个汉字,完全兼容 GB2312-80 标准,支持国际标准 ISO/IEC10646-1 和国家标准 GB13000-1 中的全部中日韩汉字,并包含了 BIG5 编码中的所有汉字。
5. hex 编码
Hex 编码的原理就是将原来 8 位的二进制字节打断,分成两个 4 位的,并且在前面加上 4 个零,进行补位。
这样一个 8 位二进制字节就变成了 2 个 8 位的二进制字节,再将新得到的 2 个二进制字符,进行 16 位进制转换,得到的新的 16 位字符串就是 Hex 的值。
所以二进制的[72, 69, 88]与 hex 的 484558 是相等的。
例如:中国——E4B8ADE59BBD
6. BASE64 编码
Base64 要求把每三个 8Bit 的字节转换为四个 6Bit 的字节(3*8 = 4*6 = 24),然后把 6Bit 再添两位高位 0,组成四个 8Bit 的字节。
也就是说,转换后的字符串理论上将要比原来的长 1/3。
作者简介
前嗅,企业级大数据供应商,多年来致力于大数据技术研究与开发,自主研发了一套数据采集、挖掘、清洗、分析及可视化的数据处理系统,拥有上万家企业用户。热衷于为大家解决各种数据问题,服务号“前嗅”,微博“@前嗅大数据”,欢迎关注。
版权声明: 本文为 InfoQ 作者【前嗅大数据】的原创文章。
原文链接:【http://xie.infoq.cn/article/f5123e2238ccc23e7608a4e15】。文章转载请联系作者。
评论