bytes和str转换函数

来源:互联网 发布:js鼠标轨迹 编辑:程序博客网 时间:2024/06/06 03:07

python3有两种表示字符序列的类型:bytes和str。前者的实例包含原始的8位二进制,后者的实例包含unicode字符。
python3中字符串默认是str,支持中文和英文字符

>>> s="abc">>> s'abc'>>> s="中国">>> s'中国'>>> s="中国abc">>> s'中国abc'>>> len(s)5

要想把unicode字符转换成二进制数据,必须用encode方法;把二进制数据转换成unicode字符,则必须用decode方法。

s='中国abc'>>> a=s.encode('utf-8')  #将字符转换为二进制编码>>> ab'\xe4\xb8\xad\xe5\x9b\xbdabc'>>> a.decode('utf-8')'中国abc'

python程序中,大部分使用unicode字符类型,因此我们输入字符或输出字符时,有时需要做必要的转换。
我们可以编写两个辅助函数,以便在这两个编码之间转换,使得转换后的输入数据能够符合开发者的预期。

def to_str(bytes_to_str):    if isinstance(bytes_to_str,bytes):        value=bytes_to_str.decode('utf-8')    else:        value=bytes_to_str    return valuedef to_bytes(bytes_to_str):    if isinstance(bytes_to_str,str):        value=bytes_to_str.encode('utf-8')    else:        value=bytes_to_str    return value
原创粉丝点击