zoukankan      html  css  js  c++  java
  • Python Byte类型(API系列)

    原文: 《Python3新增的byte类型》 博主: 杰琼王子

    总结:abcle 

         在python2中字节类型同字符类型区分不大,但是在python3中最重要的特性是对文本和二进制数据做了更加清晰的区分,文本总是Unicode,由字符类型表示,而二进制数据则由byte类型表示,python3不会以任意隐式方式混用字节型和字符型,也因此在python3中不能拼接字符串和字节包(python2中可以,会自动进行转换),也不能在字节包中搜索字符串,也不能将字符串传入参数为字节包的函数。

           需要注意的是,在网络数据传输过程中,python2可以通过字符串(string)方式传输,但是python3只能通过二进制(bytes)方式来传输,因此要对传输文本进行转换

           

    例如下面的例子:

    >>>'你好'.encode('utf-8')
    
    b'xe4xbdxa0xe5xa5xbd'
    
    >>> b'xe4xbdxa0xe5xa5xbd'.decode('utf-8')
    
    '你好'
    
     >>>'你好'.encode('utf-8').decode('utf-8')
    '你好'
    

      

    其中

    1.encode()和decode()方法中默认了编码为utf-8,但是为了避免错误,最好将编码加上。

    2.encode()出来的结果的“b”代表二进制(binary)

    string是文本(text)的抽象表示。字符串(string)由字符组成,字符也是抽象的实体且与任何二进制表示无关。
    当操纵字符串的时候,很多细节是不用了解的。我们可以分割、切片和拼接字符串,在字符串内部进行搜索。但并不在乎内部是如何表示的,也不用在意底层一个字符要花费多少byte。
    只有在需要将string编码(encode)成byte的时候,比如:通过网络传输数据;或者需要将byte解码(decode)成string的时候,我们才会关注string和byte的区别。

     

  • 相关阅读:
    centos7安装es6.4.0
    将mysql数据同步到ES6.4(全量+增量)
    c#基于supersocket的简单websocket服务端收发消息实现
    c#log4net简单好用的配置
    MongoDB安装配置教程
    IntelliJ IDEA 中创建maven项目
    VMware Workstation 的安装和使用
    Redis使用场景
    Redis 下载安装
    MySQL--启动和关闭MySQL服务
  • 原文地址:https://www.cnblogs.com/hyeTi/p/9909193.html
Copyright © 2011-2022 走看看