优草派  >   Python

Python3编码类型有哪些?怎么转换?

陈思远            来源:优草派

编码是计算机在处理字符时所采用的规则,不同编码规则对应的字符集也不同。对于Python3编程而言,了解Python3编码类型是十分必要的。本文将从多个角度分析Python3编码类型有哪些以及如何进行编码转换。

一、Python3编码类型有哪些?

Python3编码类型有哪些?怎么转换?

1. ASCII编码:ASCII编码是最早的字符编码,它仅包含英文字母、数字和一些特殊字符,总共只有128个字符。Python3默认使用的就是ASCII编码。ASCII编码表可以在Python3中通过以下代码获得:

```python

import string

print(string.printable)

```

2. Unicode编码:Unicode编码是一种全球通用的字符编码,它包含了世界上所有的字符,可以用于表示各种语言的文字。Python3中使用的字符串默认采用的是Unicode编码。Unicode编码表可以在Python3中通过以下代码获得:

```python

for i in range(0x9FFF):

print(chr(i), end=" ")

```

3. UTF-8编码:UTF-8编码是一种Unicode的实现方式,它采用变长字节表示字符,可以用1-4个字节来表示一个字符。UTF-8编码是互联网上使用最广泛的一种编码方式。Python3中可以使用encode()方法将Unicode编码转换为UTF-8编码,例如:

```python

s = "我爱Python3"

print(s.encode("UTF-8"))

```

4. GBK编码:GBK编码是国家标准编码,它是对中文字符进行编码,兼容ASCII编码,可以表示简体中文和繁体中文。Python3中可以使用encode()方法将Unicode编码转换为GBK编码,例如:

```python

s = "我爱Python3"

print(s.encode("GBK"))

```

二、Python3编码转换方法

1. Unicode转GBK或UTF-8:

将Unicode编码字符串转换为GBK或UTF-8编码字符串,可以使用encode()方法。例如:

```python

s = "我爱Python3"

gbk_s = s.encode("GBK")

utf8_s = s.encode("UTF-8")

print(gbk_s)

print(utf8_s)

```

2. GBK或UTF-8转Unicode:

将GBK或UTF-8编码字符串转换为Unicode编码字符串,可以使用decode()方法。例如:

```python

gbk_s = b'\xce\xd2\xb0\xaePython3'

utf8_s = b'\xe6\x88\x91\xe7\x88\xb1Python3'

unicode_gbk_s = gbk_s.decode("GBK")

unicode_utf8_s = utf8_s.decode("UTF-8")

print(unicode_gbk_s)

print(unicode_utf8_s)

```

3. GBK或UTF-8转UTF-8或GBK:

将GBK或UTF-8编码字符串转换为另一种编码方式的字符串,可以先将其转换为Unicode编码字符串,再使用encode()方法转换为目标编码方式。例如:

```python

gbk_s = b'\xce\xd2\xb0\xaePython3'

utf8_s = b'\xe6\x88\x91\xe7\x88\xb1Python3'

unicode_gbk_s = gbk_s.decode("GBK")

unicode_utf8_s = utf8_s.decode("UTF-8")

utf8_gbk_s = unicode_gbk_s.encode("UTF-8")

gbk_utf8_s = unicode_utf8_s.encode("GBK")

print(utf8_gbk_s)

print(gbk_utf8_s)

```

三、Python3编码应用场景

1. 文件读写:在Python3中,文件默认采用UTF-8编码方式进行读写,如果文件采用其他编码方式,需要指定编码方式。例如:

```python

with open("data.txt", "r", encoding="GBK") as f:

content = f.read()

```

2. 网络通信:在Python3中,网络通信的数据传输默认采用UTF-8编码方式,如果需要采用其他编码方式,需要指定编码方式。例如:

```python

import socket

s = socket.socket()

s.connect(("127.0.0.1", 8888))

s.send("我爱Python3".encode("GBK"))

```

3. 数据库操作:在Python3中,数据库操作的数据编码方式需要与数据库的编码方式一致,否则会出现乱码。例如:

```python

import pymysql

conn = pymysql.connect(host="127.0.0.1", user="root", password="123456", database="test", charset="utf8")

cursor = conn.cursor()

cursor.execute("select * from user")

result = cursor.fetchall()

```

四、

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行