logo头像
Snippet 博客主题

Python编码问题

本文于1335天之前发表,文中内容可能已经过时。

Python编码的一点小问题

unicode是一个字符集,它包含了(理论上)所有可能出现的文字和符号,每个符号都有一个对应的unicode值,叫做码点,对特定字符来说,这个码点是唯一,固定的
utf-xx(比如utf-8,utf-16,utf-32等)是unicode码点的一种特定的编码方式,因为码点最终要以某种形式存在于内存或者文件中,所以必须指定一种编码方式来表示某个码点
同一个码点,用不同的编码方式,得到的结果是不同的
ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。而utf-16跟utf-8是平级的概念——都是Unicode的某种编码方式
gbk,规定了(理论上)每个汉字在内存或者文件中的编码方式
而Unicode可以认为只是字符集,不限定编码规则
只是gbkutf-8的前256个字符,都保持跟ASCII兼容

Python 2.x里

string decode –> unicode string (utf16)
unicode string encode –> string

Python 3.x里

string (utf8) encode –> byte string
byte string decode –> string

评论系统未开启,无法评论!