python笔记6

目录

字符串的编码和解码

编码(Encode):

解码(Decode):

replace,ignore,strict


字符串的编码和解码

字符串的编码和解码是涉及将文本数据转换为字节序列或将字节序列转换为文本数据的过程。在Python中,常用的编码和解码方法是通过字符串的 encode()decode() 方法实现的。

编码(Encode):

编码是将文本转换为字节序列的过程。在这个过程中,你需要选择一个字符集(例如UTF-8、UTF-16、ISO-8859-1等)来表示字符,并将文本按照该字符集进行编码。

text = "Hello, 你好"# 使用 UTF-8 编码
encoded_bytes = text.encode('utf-8')
print(encoded_bytes)

在这个例子中,encode('utf-8') 将文本按照UTF-8字符集编码成字节序列。encoded_bytes 就是包含编码后数据的字节序列。

解码(Decode):

解码是将字节序列转换为文本的过程。在这个过程中,你需要知道字节序列使用的字符集,然后使用相应的字符集进行解码。

# 使用 UTF-8 解码
decoded_text = encoded_bytes.decode('utf-8')
print(decoded_text)

在这个例子中,decode('utf-8') 将字节序列按照UTF-8字符集解码为文本。decoded_text 就是解码后的文本数据。

请注意,编码和解码的字符集需要一致,否则可能导致乱码或解码错误。UTF-8 是一种常用的字符集,特别适合处理包含多语言字符的文本数据。

如果你不指定字符集,默认使用的是系统默认字符集,但为了避免不同系统之间的差异,最好明确指定字符集。

# 使用系统默认字符集编码
encoded_bytes_default = text.encode()
print(encoded_bytes_default)# 使用系统默认字符集解码
decoded_text_default = encoded_bytes_default.decode()
print(decoded_text_default)

replace,ignore,strict

在 Python 中,str.encode()bytes.decode() 方法可以接受一个可选的参数,该参数用于指定在遇到编码或解码错误时的处理方式。这个参数就是 errors,它可以取不同的值,如 'replace''ignore''strict',用于定义错误处理策略。

  1. 'replace'

    当遇到无法编码或解码的字符时,会用特殊的 Unicode 替代字符(通常是 U+FFFD REPLACEMENT CHARACTER)替代。这有助于防止由于字符集不兼容而导致整个编码或解码失败。

    text = "你好"
    encoded_text = text.encode('ascii', errors='replace')
    print(encoded_text)
    # 输出:b'??'
    

    在这个例子中,由于 ASCII 不支持中文字符,所以会用 ? 替代。

  2. 'ignore'

    在遇到无法编码或解码的字符时,会忽略这些字符而继续进行编码或解码。

    text = "你好"
    encoded_text = text.encode('ascii', errors='ignore')
    print(encoded_text)
    # 输出:b''
    

    在这个例子中,中文字符被忽略,所以结果为空字节。

  3. 'strict'

    这是默认的错误处理方式,当遇到无法编码或解码的字符时,会抛出 UnicodeEncodeErrorUnicodeDecodeError 异常。

    text = "你好"
    try:encoded_text = text.encode('ascii', errors='strict')
    except UnicodeEncodeError as e:print(f"Error: {e}")
    

    在这个例子中,由于 ASCII 不支持中文字符,会引发 UnicodeEncodeError 异常。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/648316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机介绍

本文为博主 日月同辉,与我共生,csdn原创首发。希望看完后能对你有所帮助,不足之处请指正!一起交流学习,共同进步! > 发布人:日月同辉,与我共生_单片机-CSDN博客 > 欢迎你为独创博主日月同…

关于axios给后端发送数据的问题

这里需要用的插件:qs.js,是前端给后端发送的数组,需要序列化所以要用到这个插件,这里就提取连接在这里,需要的自提,需要导如进来,别忘记了 链接:https://pan.baidu.com/s/1qyD8v9wfd…

拓展全球市场:静态代理IP成为跨境电商战略的关键工具

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

EIGRP实验

实验大纲 一、基本配置 1.构建网络拓扑结构图 2.路由器基本配置 3.配置PC 4.测试连通性 5.保存配置文件 二、配置EIGRP 1.查看路由表 2.配置EIGRP动态路由 3.查看路由器路由表 4.测试网络连通性 5.查看所有路由器的路由协议 6.保存配置文件 三、配置OSPF 1.配置…

SpringMVC-对静态资源的访问

1.工程中加入静态资源 在webapp下创建static文件夹,此文件夹专门放入静态资源 2.使项目可以处理静态资源的请求 在SpringMVC配置文件中添加以下语句 1.引入命名空间 xmlns:mvc"http://www.springframework.org/schema/mvc" xsi:schemaLocation“http…

Java基础知识02

Java基础知识02 Java 是一种常见的编程语言,具有广泛的应用。以下是一些 Java 的基础知识: Java 是一种面向对象的编程语言,在 Java 中,所有的代码都包含在类中。每个类由属性(数据)和方法(功…

Influxdb系列(二)influx Cli工具操作influxdb

一、安装并使用 influx CLI 客户端下载地址:https://docs.influxdata.com/influxdb/v2/tools/influx-cli/ [root192 bin]# tar -xvzf influxdb2-client-2.7.3-linux-amd64.tar.gz [root192 bin]# cp influx /usr/local/bin/二、客户端方式创建用户 相关的官网地址…

张维迎《博弈与社会》笔记(1)序言

导言 贯穿于本书的主题是:人类如何才能更好地合作? 社会是由人组成的,社会因人而存在,为人而存在。作为理性的个体,我们每个人都有自己的利益,都在追求自己的幸福。这是天性使然,没有什么力量能…

HNSW算法

From: HNSW算法(nsmlib/hnswlib)-CSDN博客HNSW算法的基本原理及使用 - 知乎 HNSW是一种广泛使用的ANN图索引结构,包括DiskANN、DF-GAS、SmartSSD等。本文档主要总结HNSW的结构与工作流程,便于后期研究其工作流程在迁移到CSD中存在的I/O问题…

JVM篇----第八篇

系列文章目录 文章目录 系列文章目录前言一、标记清除算法( Mark-Sweep)二、复制算法(copying)三、标记整理算法(Mark-Compact)前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分…

php/js:实现几秒后进行页面跳转

一、php实现页面跳转 下例是实现2秒后进行页面跳转 prnMsg(_(修改公告成功 . $OrderNum), success); header("refresh:2;urlprevious_page.php"); header("refresh:2;urlprevious_page.php"); refresh:规定延时秒数 url:填写需要跳…

华媒舍:15种媒体发稿推广的创意理念与案例分析

媒体发稿已经成为推广知名品牌、产品与服务关键方式之一。怎样通过媒体发稿提升曝光度和吸引住受众却是一个挑战。下面我们就详细介绍15种创意理念和案例分析,帮助你更好地进行新闻媒体发稿推广。 1.造就日常生活小故事通过展示真实用户故事和感受,读者对…

Java实现APK检测管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 开放平台模块2.3 软件档案模块2.4 软件检测模块2.5 软件举报模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 开放平台表3.2.2 软件档案表3.2.3 软件检测表3.2.4 软件举报表 四、系统展示五、核心代…

Redis 线程模型

更多内容,前往个人博客 一、概述 【1】Redis 是基于 Reactor 模式开发的网络事件处理器:这个处理器被称为文件事件处理器(file event handler),这个文件事件处理器是单线程的,所以 Redis 才叫做单线程的模型…

Unity 责任链模式(实例详解)

文章目录 示例1:游戏事件处理系统示例2:UI消息处理链示例3:游戏内物理碰撞响应链示例4:AI决策链示例5:场景切换责任链示例6:输入命令处理链 责任链模式(Chain of Responsibility)在U…

SpringBoot01

一、SpringBoot项目中常见的依赖 1.1、spring-boot-starter-parent 这个是SpringBoot项目必须导入的依赖,这个父模块内部定义了springboot整合各个技术的依赖版本,降低版本的冲突。 <parent><artifactId>spring-boot-starter-parent</artifactId><group…

玩转未来:Sui游戏峰会将于3月19日亮相GDC

Sui将在今年三月份的旧金山游戏开发者大会&#xff08;Game Developer Conference, GDC&#xff09;上推出其首个重大游戏活动&#xff0c;展示其为独立游戏到3A游戏提供动力&#xff0c;并为游戏开发人员开启吸引新玩家参与的能力。“Play Beyond&#xff1a;Sui游戏峰会”&am…

XSS靶场练习(pikachu和dvwa)

Pikachu靶场xss练习 反射型xss(get) 输入123发现被直接插入到了html中&#xff0c;而且输入框有字符长度限制 在url中构造payload:<script>alert(123)</script> 反射型xss(post) 查看源码发现登录界面没有任何机会&#xff1b;登录后输入123发现和xss(get)写入位…

css display 左右对齐 技巧

.list_number{ display: flex; } .list_name_number{ width:100px; } //左边固定width .list_name_type{ //右边给flex:2 自动撑开 flex:2; }

Flink 集成 Debezium Confluent Avro ( format=debezium-avro-confluent )

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,京东购书链接:https://item.jd.com/12677623.html,扫描左侧二维…