Python3 字符编解码

news/2024/7/7 23:39:07

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'))
    

http://lihuaxi.xjx100.cn/news/2100836.html

相关文章

开源项目免费接口:观点抽取让数据分析更简单

一、开源项目介绍 一款多模态AI能力引擎&#xff0c;专注于提供自然语言处理&#xff08;NLP&#xff09;、情感分析、实体识别、图像识别与分类、OCR识别和语音识别等接口服务。该平台功能强大&#xff0c;支持本地化部署&#xff0c;并鼓励用户体验和开发者共同完善&#xf…

Linux下的多线程编程:原理、工具及应用(3)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;Flower of Life—陽花 0:34━━━━━━️&#x1f49f;──────── 4:46 &#x1f504; ◀️ ⏸ ▶️ ☰ …

学习Java十一天总结

目录 一、走进Java编程世界 二、变量、常量和运算符 三、if选择结构 四、switch选择结构 五、while循环结构 六、for循环结构 七、数组 八、深度循环结构 九、类和对象 十、类的无参方法 十一、类的带参方法 十二、字符串 一、走进Java编程世界 程序是为了让计算机…

题记(56)--L1-071 前世档案

目录 一、题目内容 二、输入描述 三、输出描述 四、输入输出示例 五、完整C语言代码 一、题目内容 网络世界中时常会遇到这类滑稽的算命小程序&#xff0c;实现原理很简单&#xff0c;随便设计几个问题&#xff0c;根据玩家对每个问题的回答选择一条判断树中的路径&#x…

C++11:编译时断言 static_assert

static_assert 是 C11 引入的编译时断言特性&#xff0c;允许在编译期进行条件检查&#xff0c;并在条件不满足时产生编译错误。 这一特性非常有用&#xff0c;因为它可以在编译阶段就发现潜在的错误&#xff0c;而不是等到运行时。这对于模板编程、类型检查、常量表达式的验证…

RK3568平台开发系列讲解(基础篇)内核是如何发送事件到用户空间

🚀返回专栏总目录 文章目录 一、相关接口函数二、udevadm 命令三、实验沉淀、分享、成长,让自己和他人都能有所收获!😄 一、相关接口函数 kobject_uevent 是 Linux 内核中的一个函数, 用于生成和发送 uevent 事件。 它是 udev 和其他设备管理工具与内核通信的一种方式。…

欧科云链做客Google Cloud与WhalerDAO专题论坛,畅谈Web3数据机遇

3月10日&#xff0c;由Google Cloud、WhalerDAO和baidao data主办&#xff0c;以Web3AI 2024 DATA POWER为主题的分享会在北京中关村举行。欧科云链高级研究员Jason Jiang受邀参加活动&#xff0c;带来“从链上数据发掘Web3时代的无限机遇”的主题分享。 Web3.0核心要素始终是链…

C语言学习过程总结(18)——指针(6)

一、数组指针变量 在上一节中我们提到了&#xff0c;指针数组的存放指针的数组&#xff0c;那数组指针变量是什么呢&#xff1f; 显而易见&#xff0c;数组指针变量是指针 同样类比整型指针变量和字符指针变量里面分别存放的是整型变量地址和字符变量地址&#xff0c;我们可以…