unicode和utf-8编码区别
Posted xu-xu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unicode和utf-8编码区别相关的知识,希望对你有一定的参考价值。
以前使用Python2,一直为中文烦恼,也不知道为什么开头就要声明#coding=utf-8,后来用了Python3,发现就不用这样了,还是想彻底弄懂下这是为什么。
先讲asc码 每个 ASC码占一个字节 1个字节=8个bit 也就是说ASC码最多只有256个 表示中文肯定是不够的 ,所以后面就有了中文编码 gb2312,一个gb2312占用两个字节 ,但是中文有了 日文韩文等也都有自己的编码,这个就很乱,后来就有了统一编码Unicode ,Unicode占用两个字节 ,但是代码一般都是英文的,占了两个字节多占用了一倍的存储,不利于传输和存储,于是就有了utf-8的格式 可变长编码,utf-8英文占用1个字节,汉字占用三个字节。
我们用Python2的时候,汉字在Windows下默认是用的GB2312编码的,一般会申明都会带上一个小写的u,表示使用的是Unicode编码;所以Python经常会使用decode函数和encode函数,decode函数作用是将其他编码转换成Unicode,encode函数的作用是将Unicode转换成其他编码;如 s=“我爱Python”是gb2312编码,把它转换成utf-8编码就得使用 s.decode("GB2312").encode("utf-8")。如果在Python3中,它默认就是Unicode编码,就可以直接encode成utf-8格式了。
以上是关于unicode和utf-8编码区别的主要内容,如果未能解决你的问题,请参考以下文章