今天小伙伴问我一个问题:为何要有时候需要编码解码?再不清晰的做编码解码的过程之后,文字会显示:?????
这是为什么咩?
首先:因为我们不是美人,因为美国人文字特别少,A-Z所以0-255的编码已经足够,也就是我们说的byte,8位的二进制结构(1byte = 8bit)。(ascii ios-8859-1)
但是我泱泱中华,0-255能干点什么? 三字经都表示不完整!
那么要如何解决呢?
我们引入一个新的数据结构:【char】
编解码就是这两者的相互转化:【byte】 [cahr],编码就是从[char]到[byte],反之为解码
拿UNICODE来说吧。UTF-16 顾名思义也就是16位的2进制表示一个字符eg:1111111111000000
举个例子:
我们输入了:
嗨喽,世界
[char]数组就有可能是:
[b12,c12,d12,e31]
[byte]数组就应该是:
[00100000,00100000,00100000,00100000,00100000,00100000,00100000,00100000]
在计算机中的基本数据单元是:最后一个byte,为了能让计算机存储识别,我们必须要将我们输入的文字转换为bytes存储起来(bytes这里是byte的数组的意思)
为了从计算机口中获取出我们想要的内容那么就需要解码:将[byte]搞成 [char]
那么有了UNICODE之后我们的汉字也可以完整的收录了。