解決Python2中文ascii編碼的方法

YiiChina簽到的時候,常常會看到有人在說說裏面發羣主是最帥的,yii 是 PHP 最好的框架,沒有之一,就想到使用一言,在天天簽到的時候也發一句話javascript

同時使用方糖將內容推送到微信,防止有什麼不對的內容,方便上去修改java

昨天晚上抽空搞得時候,發現報錯了:微信

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

再三確認文件頭含有# coding=utf-8,沒問題啊框架

通過搜索,發現應該是由於Python2.x的默認編碼是ascii,而代碼中可能由utf-8的字符致使,解決方法是設置utf-8yii

使用Python自帶模塊sys修改編碼編碼

sys.getdefaultencoding() # 獲取系統當前編碼,通常默認爲 ascii sys.setdefaultencoding() # 設置系統默認編碼

因此在代碼中的import後增長下面幾行代碼:spa

import sys
if sys.getdefaultencoding() != 'utf-8': reload(sys) sys.setdefaultencoding('utf-8')

加了一個reload(sys)是由於Python2.x初始化後會刪除sys.setdefaultencoding這個方法,咱們須要從新載入code

相關文章
相關標籤/搜索