decode函数的几种用法
时间: 2023-07-08 08:45:44 浏览: 90
`decode()` 函数是 Python 中字符串对象的一个方法,用于将字节序列解码为字符串。以下是 `decode()` 函数的几种用法:
1. 基本用法:`str.decode(encoding='UTF-8',errors='strict')`
- `encoding`:指定要使用的编码格式,默认为 UTF-8。
- `errors`:指定如何处理解码错误,默认为 'strict',表示遇到错误会抛出异常。其他可选值有 'ignore'(忽略错误)、'replace'(用 ? 取代错误字符)等。
示例代码:
```python
b = b'\xe4\xb8\xad\xe6\x96\x87' # UTF-8 编码的字节序列
s = b.decode() # 使用默认编码格式解码
print(s) # 输出:中文
```
2. 使用多个编码格式尝试解码:`str.decode(encoding=('UTF-8', 'GBK', ...),errors='strict')`
可以指定多个编码格式,解码时会依次尝试使用这些编码格式,直到解码成功或全部失败为止。如果全部失败,会抛出异常。
示例代码:
```python
b = b'\xb1\xe0\xcd\xe2' # GB2312 编码的字节序列
s = b.decode(('UTF-8', 'GBK', 'GB2312')) # 尝试使用多个编码格式解码
print(s) # 输出:中文
```
3. 以指定的方式处理解码错误:`str.decode(encoding='UTF-8',errors='ignore')` 或 `str.decode(encoding='UTF-8',errors='replace')`
- `errors='ignore'`:忽略解码错误。
- `errors='replace'`:用 ? 取代解码错误的字符。
示例代码:
```python
b = b'\xe4\xb8\xad\xff\xe6\x96\x87' # UTF-8 编码的字节序列,其中有一个错误的字节
s1 = b.decode(errors='ignore') # 忽略解码错误
s2 = b.decode(errors='replace') # 用 ? 取代解码错误的字节
print(s1) # 输出:中文
print(s2) # 输出:中?文
```
阅读全文