UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)


在linux centos系統中使用python2.7.2對一個字符串解碼然后輸出,代碼如下: 

s = "哈哈哈"

print s.decode('utf-8')

 

結果報了如下的錯誤:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

然后在代碼前使用了:

import sys
reload(sys)

sys.setdefaultencoding('utf-8') 

這個編碼設置,運行依然報如上錯誤。

從輸出看,解碼是沒問題的,反而是編碼出了問題,應該是當前環境下print時候編碼出的問題

於是,將代碼改為:

print (s.decode('utf-8')).encode('gb2312')

結果沒問題了。

所以在使用 print 的時候,要注意環境所需的編碼。 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM