【Python技巧】python字符串编码全是Unicode,Unicode压缩到utf-8,encode和decode,bytes

本文介绍了Python3中字符串采用Unicode编码,确保了多语言的兼容性,同时讲解了Python2与Python3在字符串处理上的差异,强调了encode和decode在Python3中的作用,以及str与bytes类型的区分。此外,探讨了在需要进行网络传输或存储时,如何进行字符串的编码与解码操作。
摘要由CSDN通过智能技术生成

一、Python3字符串全是Unicode

这意味着,只要用python3.x,无论我们的程序以那种语言开发,都可以在全球各国电脑上正常显示。

  • python3.x中,把字符串变成了unicode,文件默认编码为utf-8。

  • unicode 分为utf-32 (占4个字节),utf-16(占两个字节),utf-8(占1-4个字节),所以utf-16 是最常用的unicode版本,但是在文件里存的还是utf-8,因为utf8省空间

二、Python3和Python2的不同

  • Python3中,encode和decode是string和byte的转换,与Python2中不同(Python2中是编码的改变)
  • 在Python3,encode编码的同时会把string变成bytes类型,decode解码的同时会把bytes类型变成string类型
  • Python 3版本中,字符串是以Unicode编码的。一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。

python3.x除了把字符串的编码改成了unicode,还把str和bytes做了明确区分,str就是unicode格式的字符串,而bytes就是单纯的二进制。

参考资料: https://www.jb51.net/article/179894.htm

三、string和bytes

  • string是文本(text)的抽象表示。字符串(string)由字符组成,字符也是抽象的实体且与任何二进制表示无关。

  • 当操纵字符串的时候,很多细节是不用了解的。我们可以分割、切片和拼接字符串,在字符串内部进行搜索。但并不在乎内部是如何表示的,也不用在意底层一个字符要花费多少byte。

  • 只有在需要将string编码(encode)成byte的时候,比如:通过网络传输数据;或者需要将byte解码(decode)成string的时候,我们才会关注string和byte的区别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值