添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
列表、元组、字典和集合
5 Python字符串常用方法
5.1 Python字符串拼接(包含字符串拼接数字)
5.2 Python截取字符串
5.3 Python len()函数:获取字符串长度或字节数
5.4 Python split()分割字符串方法
5.5 Python join()合并字符串方法
5.6 Python count()统计字符串出现的次数
5.7 Python find()检测字符串中是否包含某子串
5.8 Python index()检测字符串中是否包含某子串
5.9 Python ljust()、rjust()和center()方法
5.10 Python startswith()和endswith()
5.11 Python字符串大小写转换
5.12 Python去除字符串中空格
5.13 Python format()格式化输出方法
5.14 Python encode()和decode()方法
5.15 Python dir()和help()
Python流程控制 函数和lambda表达式 Python类和对象 类特殊成员(属性和方法) Python异常处理机制 Python模块和包 Python常见模块 Python文件操作(I/O) Python数据库编程 Python并发编程 Python文档和测试 Python打包和发布 Python网络编程 Tkinter Python数据可视化 Python Scrapy网络爬虫
前面章节在介绍 bytes 类型时,已经对 encode() 和 decode() 方法的使用做了简单的介绍,本节将对这 2 个方法做详细地说明。
我们知道,最早的字符串编码是 ASCII 编码,它仅仅对 10 个数字、26 个大小写英文字母以及一些特殊字符进行了编码。ASCII 码做多只能表示 256 个符号,每个字符只需要占用 1 个字节。
随着信息技术的发展,各国的文字都需要进行编码,于是相继出现了 GBK、GB2312、UTF-8 编码等,其中 GBK 和 GB2312 是我国制定的中文编码标准,规定英文字符母占用 1 个字节,中文字符占用 2 个字节;而 UTF-8 是国际通过的编码格式,它包含了全世界所有国家需要用到的字符,其规定英文字符占用 1 个字节,中文字符占用 3 个字节。
Python 3.x 默认采用 UTF-8 编码格式,有效地解决了中文乱码的问题。

在 Python 中,有 2 种常用的字符串类型,分别为 str 和 bytes 类型,其中 str 用来表示 Unicode 字符,bytes 用来表示二进制数据。str 类型和 bytes 类型之间就需要使用 encode() 和 decode() 方法进行转换。 Python encode()方法 encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。
encode() 方法的语法格式如下: str.encode([encoding="utf-8"][,errors="strict"])

注意,格式中用 [] 括起来的参数为可选参数,也就是说,在使用此方法时,可以使用 [] 中的参数,也可以不使用。
该方法各个参数的含义如表 1 所示。
表 1 encode()参数及含义 表示要进行转换的字符串。 encoding = "utf-8" 指定进行编码时采用的字符编码,该选项默认采用 utf-8 编码。例如,如果想使用简体中文,可以设置 gb2312。
当方法中只使用这一个参数时,可以省略前边的“encoding=”,直接写编码格式,例如 str.encode("UTF-8")。 errors = "strict" 指定错误处理方式,其可选择值可以是: strict:遇到非法字符就抛出异常。 ignore:忽略非法字符。 replace:用“?”替换非法字符。 xmlcharrefreplace:使用 xml 的字符引用。 该参数的默认值为 strict。 注意,使用 encode() 方法对原字符串进行编码,不会直接修改原字符串,如果想修改原字符串,需要重新赋值。

【例 1】将 str 类型字符串“ C语言 中文网”转换成 bytes 类型。 >>> str = "C语言中文网"
>>> str.encode()
b'C\xe8\xaf\xad\xe8\xa8\x80\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x91'

此方式默认采用 UTF-8 编码,也可以手动指定其它编码格式,例如: >>> str = "C语言中文网"
>>> str.encode('GBK')
b'C\xd3\xef\xd1\xd4\xd6\xd0\xce\xc4\xcd\xf8'

Python decode()方法 和 encode() 方法正好相反,decode() 方法用于将 bytes 类型的二进制数据转换为 str 类型,这个过程也称为“解码”。
decode() 方法的语法格式如下:
bytes.decode([encoding="utf-8"][,errors="strict"])

该方法中各参数的含义如表 2 所示。
表 2 decode()参数及含义 bytes 表示要进行转换的二进制数据。 encoding="utf-8" 指定解码时采用的字符编码,默认采用 utf-8 格式。当方法中只使用这一个参数时,可以省略“encoding=”,直接写编码方式即可。
注意,对 bytes 类型数据解码,要选择和当初编码时一样的格式。 errors = "strict" 指定错误处理方式,其可选择值可以是: strict:遇到非法字符就抛出异常。 ignore:忽略非法字符。 replace:用“?”替换非法字符。 xmlcharrefreplace:使用 xml 的字符引用。 该参数的默认值为 strict。 >>> bytes = str.encode("GBK")
>>> bytes.decode()  #默认使用 UTF-8 编码,会抛出以下异常
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
bytes.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd3 in position 1: invalid continuation byte

>>> bytes.decode("GBK")
'C语言中文网'

< 上一页 Python format()格式化输出方法 Python dir()和help() 下一页 >
  • socket
  • Python基础教程
  • MySQL函数
  • MySQL
  • C语言入门
  • C语言专题
  • C语言编译器
  • C语言编程实例
  • GCC编译器
  • C语言项目案例
  • C++教程
  • OpenCV
  • Unity 3D教程
  • Redis
  • Android教程
  • JavaScript
  • Mybatis
  • Spring Cloud
  • Maven
  • Spring Boot
  • Spring MVC
  • Hibernate
  • Linux
  • Linux命令
  • Shell脚本
  • Java教程
  • Spring
  • Servlet
  • Struts2
  • Java Swing
  • JSP教程
  • CSS教程
  • TensorFlow
  • Go语言教程
  • Docker
  • VIP视频
  • fseek、ftell和rewind函数,C语言fseek、ftell和rewind函数详解
  • Java内部类:Java实例内部类
  • Linux查看CPU信息方法(超简单)
  • 迭代器模式(详解版)
  • 西北工业大学汇编语言视频教程(王国军主讲)
  • SQLite Expert安装和使用
  • JSP Out.clear()方法:清除缓冲区中的数据
  • Vim显示行号
  • 示例:聊天机器人
  • Python pickle模块:实现Python对象的持久化存储
  •