真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

解決python輸出到文件亂碼的方法-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!

網(wǎng)站建設公司,為您提供網(wǎng)站建設,網(wǎng)站制作,網(wǎng)頁設計及定制網(wǎng)站建設服務,專注于企業(yè)網(wǎng)站設計,高端網(wǎng)頁制作,對格柵板等多個行業(yè)擁有豐富的網(wǎng)站建設經(jīng)驗的網(wǎng)站建設公司。專業(yè)網(wǎng)站設計,網(wǎng)站優(yōu)化推廣哪家好,專業(yè)成都網(wǎng)站營銷優(yōu)化,H5建站,響應式網(wǎng)站。

不懂解決python輸出到文件亂碼的方法?其實想解決這個問題也不難,下面讓小編帶著大家一起學習怎么去解決,希望大家閱讀完這篇文章后大所收獲。

python代碼文件的編碼

py文件默認是ASCII編碼,中文在顯示時會做一個ASCII到系統(tǒng)默認編碼的轉換,這時就會出錯:SyntaxError: Non-ASCII character。需要在代碼文件的第一行或第二行添加編碼指示:

1 # coding=utf-8 ##以utf-8編碼儲存中文字符

2 print '中文'

像上面那樣直接輸入的字符串是按照代碼文件的編碼來處理的,如果用unicode編碼,有以下三種方式:

1 s1 = u'中文' #u表示用unicode編碼方式儲存信息

2 s2 = unicode('中文','gbk')

unicode是一個內置函數(shù),第二個參數(shù)指示源字符串的編碼格式。

decode是任何字符串具有的方法,將字符串轉換成unicode格式,參數(shù)指示源字符串的編碼格式。

encode也是任何字符串具有的方法,將字符串轉換成參數(shù)指定的格式。

(2)、字符串的編碼

用 u'漢字' 構造出來的是unicode類型,不用的話構造出來是str類型

str的編碼是與系統(tǒng)環(huán)境相關的,一般就是sys.getfilesystemencoding()得到的值

所以從unicode轉str,要用encode方法

從str轉unicode,所以要用decode

例如:

# coding=utf-8 #默認編碼格式為utf-8

s = u'中文' #unicode編碼的文字

print s.encode('utf-8') #轉換成utf-8格式輸出

但當python中間處理非ASCII編碼時,經(jīng)常會出現(xiàn)如下錯誤:

UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)

0x??是超出128的數(shù)字,python在默認的情況下認為語言的編碼是ascii編碼,所以無法處理其他編碼,需要設置python的默認編碼為所需要的編碼。

一個解決的方案是在代碼中添加:

import sys

reload(sys)

sys.setdefaultencoding('utf-8') (其中utf-8為你想輸出的字符編碼)

解釋:

sys.setdefaultencoding方法在python導入site.py后就刪除了(具體代碼查看site.py就可以看到)因此如果想用的話可以再重新load進入

總結:

u=u'unicode編碼文字'

g=u.encode('gbk') #轉換為gbk格式

print g #此時為亂碼,因為當前環(huán)境為utf-8,gbk編碼文字為亂碼

str=g.decode('gbk').encode('utf-8') #以gbk編碼格式讀取g(因為他就是gbk編碼的,需要事先知道它是GBK編碼)并轉換為utf-8格式輸出

print str #正常顯示中文(同文件輸出)

安全的方法:

s.decode('gbk','ignore').encode('utf-8′) #以gbk編碼讀取(當然是讀取gbk編碼格式的文字了)并忽略錯誤的編碼,轉換成utf-8編碼輸出。

感謝你能夠認真閱讀完這篇文章,希望小編分享解決python輸出到文件亂碼的方法內容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)-成都網(wǎng)站建設公司行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學習!


分享題目:解決python輸出到文件亂碼的方法-創(chuàng)新互聯(lián)
本文來源:http://weahome.cn/article/ejgpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部