python str bytes unicode utf-8 学习

*字符串编码:

字符串,最初编码形式是ascii,用8位二进制表示。但ascii编码少,出现将所有字符编码的unicode,unicode编码对所有语言使用两个字节,部分汉语使用三个字节。但是unicode不兼容ascii,所以出现utf-8编码,utf-8编码对英文使用一个字节的编码。

*字节码bytes:

python3中bytes用b‘xxx’表示,其中的x可以用字符,也可以用ascii表示。python3中的二进制文件(如文本文件)统一采用字节码读写。

**字节和字符串关系:

二进制的bytes进行适当编码就可以变为字符了,比如utf-8或是gbk等等编码格式都可以。

str类型转化为bytes类型,使用encode()编码。bytes类型转化为str类型,使用decode()解码。

*代码:

def to_str(bytes_or_str):
  if isinstance(bytes_or_str, bytes):
    value = bytes_or_str.decode('utf-8')
  else:
    value = bytes_or_str
  return value # Instance of str
这样的代码,使得无论输入bytes还是str,都是输出str编码。

由此,我们可以看到,utf-8是一种编码规则,bytes和str是两种代码类型,通过utf-8可以互相转换。

参考:http://blog.csdn.net/Setul/article/details/52203894


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值