Windows終端輸出中文問題:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
s1 = "中文"
print(s1)
上面的代碼指定了字符編碼為 UTF-8
盹兢,但是在 windows
上的 Dos命令行窗口
執(zhí)行這個腳本時,輸出的不是中文哥桥,而是亂碼佃扼。
C:\Users\Administrator>python D:/1.py
涓枃
這是因為我們輸出的是 UTF-8
的格式的,但是 Dos命令行窗口
是以 GBK
的格式去顯示的微王,所以輸出的中文是亂碼屡限。
為了能夠輸出中文,可以把
UTF-8
編碼轉(zhuǎn)換成 GBK
編碼炕倘。
過程:先把
"utf-8"
解碼成 unicode
钧大,在把 unicode
編碼成 GBK
。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
s1 = "中文"
# 先通過 "decode" 將 "utf-8" 解碼成 "unicode" , 解碼需要指定原來是什么編碼.
s2_unicode = s1.decode("utf-8")
# 在通過 "encode" 將 "unicode" 編碼成 "gbk" , 編碼需要指定要變成什么編碼.
s3_gbk = s2_unicode.encode("gbk")
print(s3_gbk)
運行結(jié)果:
C:\Users\Administrator>python D:/1.py
中文
還有一種方法:
可以把 UTF-8
解碼成 unicode
罩旋,然后 windows
的終端會自動將 unicode
轉(zhuǎn)換成 GBK
啊央。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
s1 = "中文"
s1_unicode = s1.decode("utf-8")
# 輸出時會轉(zhuǎn)換成 "gbk" 編碼
print(s1_unicode)
運行結(jié)果:
C:\Users\Administrator>python D:/1.py
中文
注:上面使用的Python版本是 Python 2.7.2
。
C:\Users\Administrator>python -V
Python 2.7.2
在Python3.5之后涨醋,就對上面的整個過程做了一個優(yōu)化瓜饥,如果是 UTF-8
的編碼可以直接將它轉(zhuǎn)成 GBK
的編碼,不用先主動轉(zhuǎn)換成 unicode
了浴骂,而是Python內(nèi)部給你進行轉(zhuǎn)換乓土。
注:Python3中移除了 unicode
類型。