python27亂碼
『壹』 python2.7列印中文亂碼怎麼辦
由於python默認以ASCII編碼,所以不支持中文。所以我們需要在代碼前面寫上「#_*_ coding:utf-8 _*_」或者#coding=utf-8.當然,如
果你代碼中沒有中文,就不需要加上了。
還有一個原因,由於python所運行的操作系統決定的,windows默認的編碼方式是GBK編碼,所以這也是一個導致中文亂碼的原因之
一。
建議是不管你用什麼,先在代碼前面加上這一串,一定不會出現問題。
推薦學習《Python教程》。
『貳』 python2.7中文亂碼怎麼破
1,讀取到txt看結果
2,換個系統,不要用win
3,試試編碼轉化看看,這類教程也很多
還是換系統吧
『叄』 python寫文件中文亂碼
解決思路:
修改excel 打開csv 文件的編碼(可能會影響其它文件的打開,不作為首選方式)
修改python 打開文件的編碼 utf-8 -> utf-8-sig
修改前的編碼
f=open(filename,'w',encoding='utf-8')
修改後的編碼
f=open(filename,'w',encoding='utf-8-sig')
『肆』 python 亂碼問題
解決方法:
1.直接使用 u'是' 形式,指明以unicode編碼,解碼方式會以頂部 #coding定義的編碼方式,如果不寫,以操作系統當前編碼方法,建議寫上#coding,因為要讓操作系統編碼和源文件編碼經常會不一樣。推薦使用這種方式
2.輸出時指定解碼方法 print '是'.decode("utf8") ,必須和保存的編碼一致,忽略#coding的定義
3.將#coding 和保存編碼改為和操作系統一樣的編碼,就可以直接print '是' 正常輸出,也不推薦,因為需要事先知道操作系統編碼,復制到其他電腦上,操作系統編碼不一樣就會出錯
#coding=gbk
print u'是' #方法1
print '是'.decode("gbk") #方法2
print '是' #方法3
注意:
#coding指明的編碼必須和保存的編碼一樣,不然1,3方法都會產生錯誤,原因也是保存編碼和讀取編碼不一致。一般IDE能夠自動根據#coding保存文件
『伍』 Python2.7為什麼Utf-8到GBK會變成亂碼
程序沒縮進,看著費勁!
#coding=utf-8
defrespeak():
cText=u'中文'#pyperclip.paste()
print(cText)
printrepr(cText)
print(' Afterencode:')
gbk_text=cText.encode('gbk')
print(gbk_text)
printrepr(gbk_text)
print(' Afterdecode:')
real_text=gbk_text.decode('gbk')
print(real_text)
printrepr(real_text)
if__name__=='__main__':
respeak()
[willie@localhost pys]$ python2.7 speak.py
中文
u'u4e26587'
After encode:
���
'xd6xd0xcexc4'
After decode:
中文
u'u4e26587'
『陸』 python命令行輸入中文亂碼怎麼辦
python2.X,代碼中指定了UTF-8,但是在cmd命令行窗口時,列印的中文仍然會亂碼。
在python3不存在該問題
運行結果:
原因
中文windows默認的輸出編碼為gbk ,與腳本中定義的UTF-8不一樣,所以出現了解碼失敗的情況。
相關推薦:《Python基礎教程》
解決方法
有如下兩種方法可以解決這個問題
方法一
我們可以通過先把中文解碼為unicode,然後再轉化為gbk來解決這個問題:
修改後運行結果:
方法二
當然,我們也可以通過改變cmd命令行窗口的輸出格式來解決這個問題:
·chcp 65001 就是換成UTF-8代碼頁
·chcp 936 可以換回默認的GBK
但是這樣就降低了腳本的兼容性,在其他環境運行的時候可能還會出現這樣的錯誤,而且可能會影響其他腳本運行,所以推薦使用第一種方法。
『柒』 python輸出部分亂碼
#-*-coding:UTF-8-*-
importsys
reload(sys)
print(sys.getdefaultencoding())#查看默認編碼,我的是ascii
sys.setdefaultencoding('utf8')
print(sys.getdefaultencoding())#已經轉為utf8了,應該沒問題了
str=input('請輸入:')#如果是python2建議用raw_input()
print'你輸入的內容是:',str