Python 天下大同

由于直接用Unicode编码存到硬盘,会有一个IO增多的问题,于是聪明的人类有设计了一个版本叫UTF-8。

英文全称是Unicode Transformation Format。翻译过来就是Unicode的转换格式。

所以说UTF-8本质就是Unicode,只是它把Unicode转换了,把英文字符对应的二进制数转成了1个字节,1个字节就是8位。

把中文字符统一都用3个字节表示,当然原本Unicode是用2个字节表示中文,现在变成3个字节了。

不要只看片面的东西,说中文更加浪费空间了。因为UTF-8本身是针对Unicode进行整体上的精简。所以说UTF-8在整体上,一定是比Unicode更加精简的。

Unicode里面,有的生僻字可能会用4个字节,甚至8个字节。

现在详细讲解编码解码的概念。

转成Unicode二进制数的这个过程我们称之为编码,Unicode转成UTF-8或者GBK以及其他老的编码方式的过程我哦么也称之为解码。

UTF-8或者其他编码方式转成Unicode的过程我们称之为解码,然后Unicode转成我们的字符的这个过程我们也称之为解码。

编码:字符--->编码--->unicode--->编码--->UTF-8\GNK
解码:字符<---解码<---unicode<---解码<---UTF-8\GNK

内存里是固定使用Unicode编码的,我们唯一可以改变的是,录入硬盘的时候采用Unicode跟哪种编码进行转换?到底是Unicode转成GBK,还是Euc-kr?

但是咱们应该转成的是UTF-8,因为UTF-8是兼容万国字符的,而且也比Unicode更精简。

那为什么我们不把内存里也直接换成UTF-8呢?还要Unicode干什么呢?这样不是内存里是最精简的,硬盘里也是最精简的吗?

但是要注意一个问题,Unicode不仅仅是兼容万国字符,它还充当了一个中介的功能,它与以前那些老的字符编码有对应关系。

所以咱们现在内存里仍然使用的是Unicode编码,这样能够使得从过去的诸侯并起的编码方式,过渡到现在最理想的UTF-8会更加的平滑。

所以从现在开始,对于专业人士来说,所有的新文件,再往硬盘存的时候就应该存UTF-8的格式。

这样当我们硬盘上的数据越来越多,等过五六十年的时候,硬盘上那些老的编码方式的文件彻底被淘汰了,全都是UTF-8格式的文件了。

到那个时候Unicode就可以彻底下岗了,内存里就可以直接使用UTF-8格式了。

于是计算机又回到了那个天下大同的局面了,我们也就再也不会遇到乱码问题了。

未经允许不得转载:445IT之家 » Python 天下大同

赞 (0) 打赏

相关推荐

    暂无内容!

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏