python——字符串——编码

ASCII&Unicode&UTF-8

  • ASCII:1字节
  • Unicode:通常2字节
  • UTF-8:可变长编码,UTF-8编码把一个Unicode字符编码成1-6字节,常用英文字母编码成1字节,汉字通常3字节,只有很生僻的字符才会编码成4-6字节

编码转换

  • ASCII转Unicode:首字节补0
  • ASCII转UTF-8:ASCII本身可理解为UTF-8一部分,不需要转
  • Unicode转UTF-8:当文本包含大量英文字符时,从内存到外存以节省外存空间,从内存到网络字节流以节省网络带宽
  • UTF-8转Unicode:从外存到内存使字符字长固定以提高程序运行性能,从网络字节流到内存使字符字长固定以提高程序运行性能

字符串

ASCII

print 'Horse'
print ord('A')
print chr(65);
output:
Horse
65
A

Unicode

# -*- coding: utf-8 -*-

print u'abc'
print U'xyz'
print u'中文'
print U'动物'
output:
abc
xyz
中文
动物
注:# -*- coding: utf-8 -*-用来告诉python解释器按照UTF-8编码读取python源文件,当然python源文件本身也必须是以UTF-8编码存储的

Unicode和UTF-8转换

Unicode转UTF-8

>>> u'abc'.encode('utf-8')
'abc'
>>> print u'abc'.encode('utf-8')
abc
>>> u'动物'.encode('utf-8')
'\xe5\x8a\xa8\xe7\x89\xa9'
>>> print u'动物'.encode('utf-8')
动物

UTF-8转Unicode

>>> 'abc'.decode('utf-8')
u'abc'
>>> print 'abc'.decode('utf-8')
abc
>>> '\xe5\x8a\xa8\xe7\x89\xa9'.decode('utf-8')
u'\u52a8\u7269'
>>> print '\xe5\x8a\xa8\xe7\x89\xa9'.decode('utf-8')
动物
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值