【20171225】编解码
python中的编码和解码
编码 encode() :unicode ——> str 【string ——> byte】
unicode字符串 ——> 转换为特定字符编码(ascii、utf-8 等)对应的字节串的过程
编码给计算机底层用的
解码 decode() :str ——> unicode 【byte ——> string】
特定字符编码(ascii、utf-8 等)的字节串 ——> 转换为对应unicode字符串的过程
解码是显示给人看的
【知识点】
1、python默认用 ascii编码,ascii不支持中文
所以 python代码开始加上 #coding=utf-8 或 #coding=gbk,否则代码中的中文会报错
2、unicode是字符串,ascii、utf-8、gbk等是字节串
ascii、utf-8、gbk 都是编码方式,字符 ——> 编码为 ——> 字节码
unicode |
所有字符【符号集,只规定符号的二进制代码,没规定这个二进制代码该怎么存储】 |
ascii |
英文字母、数字、特殊字符 |
utf8 |
所有语言【使用最广的一种 unicode实现方式】 |
gbk |
简体中文 |
gb2312 |
简体中文 |
gb18030 |
简体中文 |
big5 |
繁体中文 |
big5hkscs |
繁体中文 |
\u4e2d\u6587 |
十六进制 |
u'你好' |
u是unicode的编码 |
【编解码过程】
1、默认编码
#coding=utf-8 import sys # 打印默认编码 print(sys.stdout.encoding) # 控制台(pycharm)的编码 print(sys.getdefaultencoding()) # python的编码
2、编解码实例
#coding=utf-8 s = '你好' print('开头需加上 #coding=utf-8: ',s) a = '中国' b = u'中国' c = '中国'.encode('utf-8') d = b'\xe4\xb8\xad\xe5\x9b\xbd'.decode('utf-8') print('字符串:',a,type(a),len(a)) print('unicode编码:',b,type(b),len(b)) print('编码:',c,type(c),len(c)) print('解码:',d,type(d),len(d))