Python3 字符编解码

Python3 字符编解码

什么是字符编解码

  • 编码:根据编码格式将人类认识的字符转为字节流
  • 解码:根据编码格式将字节流转为人类认识的字符

Python3 中的字符编码

  • utf-8Python3的默认编码格式,可通过以下语句查看:

    import sys
    print(sys.getdefaultencoding())
    
  • Python中使用方法encode来进行字符串的编码:

    foo_str = '我丢你'
    # encode 方法将人类认识的字符串 我丢你 转换成了字节流
    foo_bytes = foo_str.encode('utf-8')
    # 输出为 b'\xe6\x88\x91\xe4\xb8\xa2\xe4\xbd\xa0' <class 'bytes'>
    print(foo_bytes, type(foo_bytes))
    
    # 方法 ord 可以获得字符的 unicode 编码,
    print(ord('我'))  # 29228
    # 方法 chr 可以将 unicode 编码转为字符
    print(chr(25105))  # 我
    

Python3 中的字符解码

  • Python中使用方法decode来进行字节流的解码:

    foo_bytes = b'\xe6\x88\x91\xe4\xb8\xa2\xe4\xbd\xa0'
    # decode 方法将字节流转换成了人类认识的字符串 我丢你
    print(foo_bytes.decode('utf-8'))
    

乱码

  • 如果编码和解码格式不一致,就会出现乱码问题,例如:

    foo_str = '我丢你'
    # 使用 utf-8 进行编码
    foo_bytes = foo_str.encode('utf-8')
    # 输出为 b'\xe6\x88\x91\xe4\xb8\xa2\xe4\xbd\xa0' <class 'bytes'>
    print(foo_bytes, type(foo_bytes))
    
    # 使用 gbk 进行解码,会出现以下错误:
    # 'gbk' codec can't decode byte 0xa0 in position 8: incomplete multibyte sequence
    print(foo_bytes.decode('gbk'))
    

相关推荐

  1. Python3 字符解码

    2024-03-17 16:08:04       19 阅读
  2. Python——字节串bytes的解码

    2024-03-17 16:08:04       31 阅读
  3. .Net 字符集解码

    2024-03-17 16:08:04       29 阅读
  4. python3 csv解析单引号包含特殊字符字段

    2024-03-17 16:08:04       37 阅读
  5. python3.x编码解码unicode字符串

    2024-03-17 16:08:04       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 16:08:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 16:08:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 16:08:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 16:08:04       20 阅读

热门阅读

  1. 修改Docker 默认存储路径,镜像容器移动到新路径

    2024-03-17 16:08:04       19 阅读
  2. 【Docker】Kong 容器化部署及配置参数说明

    2024-03-17 16:08:04       17 阅读
  3. centos7网络命令:ping、dig、nsloopup、tcpdump

    2024-03-17 16:08:04       20 阅读
  4. 【Python】pymysql库的介绍及用法

    2024-03-17 16:08:04       23 阅读
  5. Python面向对象编程:入门篇(类和对象)

    2024-03-17 16:08:04       22 阅读
  6. 华为机试真题练习汇总(41~50)

    2024-03-17 16:08:04       20 阅读
  7. 客户端渲染与服务端渲染(2)

    2024-03-17 16:08:04       17 阅读
  8. linux ---vim的基本使用

    2024-03-17 16:08:04       18 阅读
  9. 前端面试练习24.3.16

    2024-03-17 16:08:04       22 阅读
  10. 速盾cdn:cdn关闭后多长生效?

    2024-03-17 16:08:04       20 阅读