Python2.7
默認(rèn)字符編碼是ascii
格式,即使指定字符編碼為UTF-8也未必能夠輸出中文,測(cè)試如下:
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > #_*_coding:utf-8_*_# 定義一個(gè)變量內(nèi)容為中文,字符集為UTF-8temp = "中文"<br># 輸出變量temp的內(nèi)容print(temp)<br></span> |
用win下的dos窗口執(zhí)行這個(gè)腳本,看看輸出出來的是否為中文
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >C:\Users\anshe>python F:\Python_code\sublime\Day02\print.py涓枃 #輸出出來的是亂碼<br></span> |
這是為什么呢?其實(shí)是因?yàn)閐os窗口的字符編碼是GBK
的(如下圖),規(guī)定輸出的字符集必須是GBK的,所以輸出出來的中文即為亂碼。
注意我是用的是Python2.7.11
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >C:\Users\anshe>python -VPython 2.7.11<br>< /span > |
使用Pycharm
或者sublime
的Python IDE
輸出中文流程
流程中文說明:Py Scripts頭部指定編碼格式為UTF-8
—> IDE把默認(rèn)的Ascii格式編碼成UTF-8
—-> IDE終端輸出中文
用sublime IDE輸出
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > # _*_ coding:utf-8 _*_# 定義一個(gè)變量內(nèi)容為中文,字符集為UTF-8temp = "中文"<br># 輸出變量temp的內(nèi)容print(temp)<br></span> |
輸出的內(nèi)容:
既然這樣,python的編碼能夠把ascii
編碼還換成UTF-8
那么肯定也就可以轉(zhuǎn)換成GBK
編碼,流程如下:
代碼如下:
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > # _*_ coding:utf-8 _*_# 定義一個(gè)變量內(nèi)容為中文,字符集為UTF-8temp = "中文"<br># 解碼,需要指定原來是什么編碼temp_unicode = temp.decode("utf-8")<br># 編碼,需要指定要轉(zhuǎn)換成什么編碼temp_gbk = temp_unicode.encode("gbk")<br># 輸出轉(zhuǎn)換成的gbk編碼print(temp_gbk)<br></span> |
Dos窗口執(zhí)行測(cè)試:
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >C:\Users\anshe>python F:\Python_code\sublime\Day02\print.py中文<br>< /span > |
另外一種方法:
代碼:
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > # _*_ coding:utf-8 _*_# 定義一個(gè)變量內(nèi)容為中文,字符集為UTF-8temp = "中文"<br># 解碼,需要指定原來是什么編碼temp_unicode = temp.decode("utf-8")<br># 輸出轉(zhuǎn)換成的gbk編碼print(temp_unicode)# Windows終端需要GBK,DOS自動(dòng)轉(zhuǎn)換成GBK<br></span> |
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >C:\Users\anshe>python F:\Python_code\sublime\Day02\print.py中文<br>< /span > |
大概流程也就像下面的圖一樣
python3移除了unicode字符集的類型,默認(rèn)使用UTF-8,還有一種也可以在dos終端輸出中文的方法,代碼如下:
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" > # _*_ coding:utf-8 _*_print(u"中文")<br></span> |
DOs窗口輸出的就是中文了,雖然我也不知道是什么意思
1 | <span style= "font-family:arial, helvetica, sans-serif;font-size:18px;" >C:\Users\anshe>python f:\Python_code\sublime\Day02\print.py中文<br>< /span > |
本文出自 “一盞燭光” 博客,謝絕轉(zhuǎn)載!
更多建議: