decode()方法——解码字符串

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

  语法参考

解码是将字节流转换成字符串(文本),其他编码格式转成unicode。在Python中提供了decode()方法,该方法的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。decode()方法的语法格式如下:

bytes.decode([encoding="utf-8"][,errors="strict"])

参数说明:

l  bytes:表示要进行转换的字节数据,通常是encode()方法转换的结果。

l  encoding="utf-8":可选参数,用于指定进行解码时采用的字符编码,默认为utf-8,如果想使用简体中文可以设置为gbk或gb2312(与网站使用的编码方式有关)。当只有一个参数时,可省略前面的“encoding=”,直接写编码。

注意:在设置解码采用的字符编码时,需要与编码时采用的字符编码一致,如果不一致程序会出现错误提示,此时可以更换编码方式。

l  errors="strict":可选参数,用于指定错误处理方式,其可选择值可以是strict(遇到非法字符就抛出异常)、ignore(忽略非法字符)、replace(用“?”替换非法字符)或xmlcharrefreplace(使用XML的字符引用)等,默认值为strict。

    快用锦囊

锦囊1  对指定的字符串进行解码

对指定的字符串进行解码,代码如下:

#定义字节编码

Bytes1=bytes(b'\xe6\x88\x91\xe7\x88\xb1Python')

#定义字节编码

Bytes2=bytes(b'\xce\xd2\xb0\xaePython')

str1=Bytes1.decode("utf-8")#进行utf-8解码

str2=Bytes2.decode("gbk")  #进行gbk解码

print(str1)                #输出utf-8解码后的内容

print(str2)                #输出gbk解码后的内容

运行程序,输出结果为:

我爱Python

我爱Python

锦囊2  操作不同编码格式的文件

建立一个文件test5.txt,文件格式为ANSI,内容如下:

机器码:NH57Q35XD5MZVI7ZWL7H2UX0I

用户名称:MZRCE44HHKBQ

用Python来读取,代码如下:

# coding=gbk

#用python来读取

print(open('./tmp/test5.txt').read())

运行程序,输出结果为:

机器码:NH57Q35XD5MZVI7ZWL7H2UX0I

用户名称:MZRCE44HHKBQ

将test5.txt另存为test51.txt,并将编码格式改为utf-8,再使用Python读取test51.txt,代码如下:

#用python读取uft-8编码格式的文本文件

f=open('./tmp/test51.txt','rb')

s=f.read()

f.close()

print(s)

运行程序,输出结果为:

b'\xef\xbb\xbf\xe6\x9c\xba\xe5\x99\xa8\xe7\xa0\x81\xef\xbc\x9aNH57Q35XD5MZVI7ZWL7H2UX0I\r\n\xe7\x94\xa8\xe6\x88\xb7\xe5\x90\x8d\xe7\xa7\xb0:MZRCE44HHKBQ \r\n'

此时出现了乱码,这是由于字符经过不同编码解码再编码的过程中使用的编码格式不一致导致的。那么,接下来我们使用decode()方法进行解码,代码如下:

print(s.decode('utf-8')) #使用decode()方法解码并输出

运行程序,输出结果为:

机器码:NH57Q35XD5MZVI7ZWL7H2UX0I

用户名称:MZRCE44HHKBQ

    应用场景

场景一:解码爬虫获取的字节形式代码

在使用python爬取指定的网页时,获取的内容中,如果汉字都是字节码的情况下,可以通过decode()方法实现html代码的解码工作。代码如下:

import requests        # 网络请求模块

# 对爬取目标发送网络请求

response = requests.get('https://www.baidu.com/')

html_bytes = response.content     # 获取爬取的内容,该内容为字节形式

print(html_bytes)                 # 打印字节形式的html代码

print(html_bytes.decode('utf-8')) # 打印解码后的html代码

运行程序,输出结果中字节形式<title>标签的内容如下:

<title>\xe7\x99\xbe\xe5\xba\xa6\xe4\xb8\x80\xe4\xb8\x8b\xef\xbc\x8c\xe4\xbd\xa0\xe5\xb0\xb1\xe7\x9f\xa5\xe9\x81\x93</title>

输出结果中解码后<title>标签的内容如下:

<title>百度一下,你就知道</title>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

layui在表格中嵌入上传按钮,并修改上传进度条

当需要在表格中添加上传文件按钮&#xff0c;并不需要弹出填写表单的框的时候&#xff0c;需要在layui中&#xff0c;用按钮触发文件选择 有一点需要说明的是&#xff0c;layui定义table并不是在定义的标签中渲染&#xff0c;而是在紧接着的标签中渲染&#xff0c;所以要获取实…

小模型家族又新增成员Gemma2

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调重新阅读。而最新科技&#xff08;Mamba&#xff0c;xLSTM,KAN&#xff09;则提供了大模…

java大型医院绩效考核系统源码(医院为什么需要绩效机制?)医院绩效考核系统源码 医院管理绩效考核系统源码

java大型医院绩效考核系统源码&#xff08;医院为什么需要绩效机制&#xff1f;&#xff09;医院绩效考核系统源码 医院管理绩效考核系统源码 医院作为提供医疗服务的核心机构&#xff0c;其运营和管理效率直接影响到患者的就医体验、治疗效果以及医院的长期发展。因此&#xf…

Java编写学籍信息管理系统,完整代码

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

基于香农编码的图像压缩算法实现,聊聊!

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

【语言模型】探索AI模型、AI大模型、大模型、大语言模型与大数据模型的关系与协同

一、引言 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;各种AI模型如雨后春笋般涌现&#xff0c;其中AI模型、AI大模型、大模型、大语言模型以及大数据模型等概念在学术界和工业界引起了广泛关注。这些模型不仅各自具有独特的特点和应用场景&#xff0c;…

我关于Excel使用点滴的笔记

本篇笔记是我关于Excel使用点滴的学习笔记&#xff0c;摘要和地址链接列表。临时暂挂&#xff0c;后面可能在不需要时删除。 (笔记模板由python脚本于2024年06月28日 12:23:32创建&#xff0c;本篇笔记适合初通Python&#xff0c;熟悉六大基本数据(str字符串、int整型、float浮…

有人问周鸿祎: 学历不重要,为什么360只要985和211?

关注、星标公众号&#xff0c;直达精彩内容 有人问周鸿祎:你说学历不重要&#xff0c;为什么360招聘的人才只要985和211&#xff1f;他说这个事情&#xff0c;我专门问了我们的人力资源&#xff0c;我们的干品分为校园招聘和社会招聘 校园招聘的话会看文凭 社会招聘的话&#x…

es学习初步总结

看api看麻了不知道意义在哪里&#xff0c;所以就简单总结点我觉得有用的东西 基本数据结构解析 分为了文档&#xff0c;索引和映射 索引可以理解为一张表&#xff0c;映射描述了索引的数据结构&#xff0c;而文档就是一个个具体的行 所以一般我们需要在申明索引的时候同时申…

[数据库]事务的隔离级别存储引擎

事务的隔离级别 存储引擎 举例 myisam 进行回滚操作后可以发现有一个警告没有行受到影响 memory 比如用于qq的在线离线状态

EE trade:贵金属投资的优点及缺点

贵金属(如黄金、白银、铂金和钯金)一直以来都是重要的投资和避险工具。它们具有独特的物理和化学特性&#xff0c;广泛应用于各种行业&#xff0c;同时也被视为财富储备。在进行贵金属投资时&#xff0c;了解其优点和缺点对于做出明智的投资决策至关重要。 一、贵金属投资的优…

一个CentOS“倒下去”,更多开源创新服务器操作系统站起来

“一切过往&#xff0c;皆为序章。” ——出自莎士比亚的戏剧《暴风雨》 CentOS 7将在2024年6月30日正式停更&#xff0c;这在某种程度上宣告了国外开源操作系统一个时代的结束。那么&#xff0c;这是不是必然意味着&#xff0c;一个属于我国自主创新的开源操作…

人工智能设备pbootcms网站模板源码

模板介绍 人工智能行业发展趋势不断攀升逐渐成为了新业态&#xff0c;小编精心为大家收集整理了一款HTML5人工智能设备pbootcms网站模板整站源码下载&#xff0c;可帮助您快速建站以展示企业的产品与业务&#xff0c;响应式自适应设计也会适配所有浏览设备。 模板截图 源码下…

社群知识数据管理平台,为VISA合作银行实现私域社群提质降本 | 创新场景

ITValue 痛点 在银行私域社群运营领域&#xff0c;随着社群规模的迅速扩张&#xff0c;管理复杂度和人力成本同步攀升。同时&#xff0c;社群中的数据和知识内容分散&#xff0c;缺乏有效的整合和利用。 解决方案 在提供给VISA合作银行的解决方案中&#xff0c;基于摹小仙AI营销…

Python学习路线图:120天系统学习,你也能成大神!

学Python&#xff0c;切忌今天这学一点&#xff0c;明天那里学一点&#xff0c;零零散散没有系统的学习。这样不仅耽搁大家时间&#xff0c;久而久之也会消磨大家学习的兴致&#xff01;这里给大家总结了一张系统的Python学习路线图&#xff01;希望大家共勉&#xff01; Pyth…

【Python】已解决:TypeError: Object of type JpegImageFile is not JSON serializable

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;TypeError: Object of type JpegImageFile is not JSON serializable 一、分析问题背景 在进行Python编程时&#xff0c;特别是处理图像数据和JSON序列化时&…

LabVIEW航空用电缆检测

系统通过集成LabVIEW平台&#xff0c;实现了航空用电缆检测过程中的自动数据收集、处理和报告生成&#xff0c;显著提升了检测效率和数据准确性&#xff0c;降低了人工干预&#xff0c;提高了电缆检测的可靠性。 项目背景 在航空领域&#xff0c;电缆的质量检测对确保飞机及其…

单片机使用printf在串口输出字符串

把字符串使用printf输出的本质 实际上调用了putchar和串口字符输出函数&#xff0c;参考 以51单片机中的程序为例 在主函数中使用printf函数向串口发送字符串&#xff0c;当然保证已经定义好串口的波特率等参数 while(1){//uart0SendString("start....\n");prin…

Animate软件基础:删除图层或文件夹

Animate软件中&#xff0c;图层或者图层文件夹同样可以进行删除操作&#xff0c;不过需要注意的是&#xff0c;删除图层或者删除文件夹&#xff0c;都会将其中所有的内容删除。 要选择图层或文件夹&#xff0c;可以单击时间轴中该图层或文件夹的名称&#xff0c;或者单击图层中…

黄子韬直播风暴揭秘经济人风波

黄子韬直播风暴&#xff1a;揭秘经纪人风波&#xff0c;真诚道歉小马丁6月27日晚&#xff0c;娱乐圈再次掀起波澜&#xff0c;黄子韬在直播中罕见地谈及了去年那场业界的经纪人风波&#xff0c;并意外地再次回应了与DJ小马丁的演出争议&#xff0c;这无疑让广大粉丝和网友们热血…