Python3 字符编解码

news/2024/7/24 11:43:37 标签: python, 开发语言

Python3 字符编解码

什么是字符编解码

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

Python3 中的字符编码

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

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

    python">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来进行字节流的解码:

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

乱码

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

    python">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://www.niftyadmin.cn/n/5433873.html

相关文章

数据结构的概念大合集01(含数据结构的基本定义,算法及其描述)

概念大合集01 1、数据结构基础的定义2、数据结构2.1 数据元素之间关系的集合2.2数据结构的三要素2.2.1数据的逻辑结构2.2.2数据的存储&#xff08;物理&#xff09;结构2.2.3数据的运算 3、数据类型4、抽象数据类型类型&#xff08;ADT&#xff09;5、算法及其描述5.1算法的5个…

指针基础 - golang版

文章目录 1、指针2、基础语法2.1 定义指针2.2 取地址操作符 &2.3 解引用操作符 * 3、实战用法3.1 指针作为函数参数3.2 指针和结构体3.3 指针和接收者 1、指针 变量是存储值的地方&#xff1b;指针的值是一个变量的地址&#xff1b;不是所有的值都有地址&#xff0c;但是所…

【IC设计】Verilog线性序列机点灯案例(三)(小梅哥课程)

声明&#xff1a;案例和代码来自小梅哥课程&#xff0c;本人仅对知识点做做笔记&#xff0c;如有学习需要请支持官方正版。 文章目录 该系列目录设计目标设计思路RTL及Testbench代码RTL代码Testbench代码 仿真结果上板视频 该系列目录 Verilog线性序列机点灯案例(一)&#xff…

upload-labs通关方式

pass-1 通过弹窗可推断此关卡的语言大概率为js&#xff0c;因此得出两种解决办法 方法一 浏览器禁用js 关闭后就逃出了js的验证就可以正常php文件 上传成功后打开图片链接根据你写的一句话木马执行它&#xff0c;我这里采用phpinfo&#xff08;&#xff09; 方法二 在控制台…

什么是虚假唤醒?为什么会产生虚假唤醒?

什么是虚假唤醒&#xff1f; 当一定的条件触发时会唤醒很多在阻塞态的线程&#xff0c;但只有部分的线程唤醒是有用的&#xff0c;其余线程的唤醒是多余的。 比如说卖货&#xff0c;如果本来没有货物&#xff0c;突然进了一件货物&#xff0c;这时所有的顾客都被通知了&#x…

相机与相机模型(针孔/鱼眼/全景相机)

本文旨在较为直观地介绍相机成像背后的数学模型&#xff0c;主要的章节组织如下&#xff1a; 第1章用最简单的针孔投影模型为例讲解一个三维点是如何映射到图像中的一个像素 第2章介绍除了针孔投影模型外其他一些经典投影模型&#xff0c;旨在让读者建立不同投影模型之间的建模…

【区间合并专题】【蓝桥杯备考训练】:挤牛奶、区间合并、校门外的树、管道【已更新完成】

目录 1、挤牛奶&#xff08;usaco training 1.3&#xff09; 2、区间合并&#xff08;模板&#xff09; 3、校门外的树&#xff08;NOIP2005普及组&#xff09; 4、管道&#xff08;第十四届蓝桥杯 省赛 python B组&#xff09; 1、挤牛奶&#xff08;usaco training 1.3&a…

Unity Live Capture 中实现面部捕捉同步模型动画

Unity Face Capture 是一个强大的工具&#xff0c;可以帮助你快速轻松地将真实人脸表情捕捉到数字模型中。在本文中&#xff0c;我们将介绍如何在 Unity Face Capture 中实现面部捕捉同步模型动画。 安装 |实时捕获 |4.0.0 (unity3d.com) 安装软件插件 安装 Live Capture 软件…