python2代码转化为python3,Python 编码转换

  python2代码转化为python3,Python 编码转换

  当我们在国外旅行时,我们需要将我们的钱兑换成当地货币才能消费。如果只带自己的货币,可能什么都做不了。在python中,不同的代码不能直接相互通信,需要转换后才能使用。这就是我们所说的转化过程。不知道朋友们最近有没有遇到这方面的问题。边肖未雨绸缪,为每个人找到了解决方案。有需要的朋友来看看吧。

  Unicode编码可用于不同代码之间的相互转换。

  理解ASCII、Unicode、UTF 8和GBK的相关概念。

  不同的代码不能互相识别,不能互相转换,会报错或乱码。

  国际标准:Unicode不能用于通过网络或硬盘存储进行文本传输,因为Unicode使用的是升级后的32位版本,消耗的流量和空间太大。

  在Python3版本3中,只有string在内存中的编码方式是Unicode,所以string不能直接通过网络传输,存储在文件中。

  Bytes:也是数据类型,不是字节。这就像是弦乐型的孪生兄弟。

  ily: 微软雅黑, "Microsoft YaHei";">为啥要有 bytes —— bytes 内部编码不是 Unicode 方式,因此可以进行网络传输和文件的存储

  前面提到,string 类型却是 Unicode 方式,为啥平时我们用的是 string 而不是 bytes?——因为 bytes 的中文是 16 进制方式存在

  因此,一般当需要网络传输数据或者文件存储时要考虑用 bytes 类型

  

s1="abc"

  s2=b"abc"

  

  print(type(s1))#<class'str'>

  print(type(s2))#<class'bytes'>

string 转化成 bytes 的方法

  

########方法一########

  #Unicode编码方式的string-->GBK编码方式的string-->GBK编码方式的bytes

  #encode编码

  #decode解码

  

  #Python3版本中,字符串的编码方式就是Unicode,所以这里等同于s=u"中国"

  s1="中国"

  b=s1.encode("gbk")

  s2=b.decode("gbk")

  

  print(s1)#中国

  print(b)#b'\xd6\xd0\xb9\xfa'

  print(s2)#中国

  print(type(s1))#<class'str'>

  print(type(b))#<class'bytes'>

  print(type(s2))#<class'str'>

  

  #原因解析:首先s1是以Unicode编码方式的string

  #然后b是将Unicode编码方式的string转化成GBK编码方式的bytes

  #最后s2是将GBK编码方式的bytes转化成Unicode编码方式的string

  

  

  ########方法二########

  #Unicode编码方式的string-->UTF-8编码方式的string-->GBK编码方式的bytes

  

  s1="中国"

  b=s1.encode("utf-8")

  s2=b.decode("utf-8")

  

  print(s1)#中国

  print(b)#b'\xe4\xb8\xad\xe5\x9b\xbd'

  print(s2)#中国

  print(type(s1))#<class'str'>

  print(type(b))#<class'bytes'>

  print(type(s2))#<class'str'>

强调一点:不同编码之间只能通过 Unicode 编码方式来相互转化

  

  

以上就是Python3编码之间相互转化的方法。小编经过测试后,发现真实有效~不知道小伙伴们的问题解决了没有,小编期待大家的互动呀。下篇我们会带来编码中文件的操作,大家一定不要错过。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: