ascii --> unicode --> utf-8
在计算机内存中,统一使用Unicode编码。当需要保存到硬盘或者需要传输的时候,可以转换为UTF-8编码。
1.Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码
Python内建的ord()和chr()函数,可以把字母和对应的数字相互转换:
>>> ord('A')65>>> chr(65)'A'
2.Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'
表示
>>> u'中'u'/u4e2d'
/u
后面是十六进制的Unicode码。
3.unicode --> utf-8
>>> u'ABC'.encode('utf-8')'ABC'>>> u'中文'.encode('utf-8')'/xe4/xb8/xad/xe6/x96/x87'
英文字符转换后表示的UTF-8的值和Unicode值相等(但占用的存储空间变小,2个字节变为1个字节),而中文字符转换后1个Unicode字符转化为UTF-8字符后,两个字节变为3个字节。用len()函数显示,从1个字符长度变为3个字符。
>>> len(u'中')1>>> len(u'中'.encode('utf-8'))3
4.utf-8 --> unicode
>>> 'abc'.decode('utf-8')u'abc'>>> test = '/xe4/xb8/xad/xe6/x96/x87'.decode('utf-8')u'/u4e2d/u6587'>>> PRint test中文
# -*- coding: utf-8 -*-
参考链接点我新闻热点
疑难解答