Python 编码转换

要点:(Python 2.x版本)

1
2
3
4
5
6
7
8
9
	编码
unicode ----> UTF-8
解码
UTF-8 ----> unicode

编码
unicode ----> GBK
解码
GBK ----> unicode

因此若想将UTF-8编码转换为GBK编码,需要经过先解码成unicode,再编码成GBK的过程

在 Python 3.x 版本中,可以直接将UTF-8编码为GBK,且移除了unicode编码。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/evn python
# -*- coding: UTF-8 -*-

#由于windows DOS窗口默认使用GBK编码方式,如直接打印会出现乱码
print('胡肖勇')

#进行解码、编码过程,可以正常打印
str = '胡肖勇'
tmp_unicode = str.decode('UTF-8')
tmp_gbk = tmp_unicode.encode('GBK')
print(tmp_gbk)

print(tmp_unicode)
# Windows 比较人性化的设计是如果转换为unicode编码后,如果终端需要GBK编码,会自动将unicode编码为GBK。
# Python 3.x版本中是不可以的,因为移除了unicode编码。

示例运行结果:

1
2
3
4
C:\Users\ttlop>python E:\q1_s1_day01\s14.py
鑳¤倴鍕
胡肖勇
胡肖勇