Python 字符編碼總結

最近做項目時碰到許多python的編解碼問題,特此總結一下。


1.    首先如果你在python文件中需要使用到一些除ascii以外的特殊字符,則需要申明#coding:utf8等,你也可以在中間加上一些其他字符,但是python本身只檢測#和coding以及編碼字符串。如果你聲明這句以後,你在python文件中使用的特殊字符則默認以這種方式編碼。編碼字符串是不區分大小寫的,所以utf8和UTF8,Utf-8都是沒有區別的。

#coding: UTF-8


2.    python當中默認的編碼格式是Unicode,然後如果你想要將一種字符轉換成另一種字符是不能直接轉換的,而是先應該使用decode函數將特殊編碼轉換成Unicode,然後將Unicode再轉換成另一種字符,比如將GBK轉換成utf8.

str.decode('gbk').encode('utf-8')


3.    有時候我們會遇到一個問題就是當你將一個字符串解碼成Unicode時,有些特殊字符是無法轉換的,這時你可以在decode中加入參數'ignore',代表你忽視此參數的轉換。

str.decode('gbk', 'ignore').encode('utf-8')


4.     有時候默認做一些string處理時,python會默認把字符串轉換成Unicode形式,所以會碰到3所指的問題,就是有些特殊字符不能轉換(然後報錯),但是你又希望以後繼續使用原有編碼格式的字符,咋辦呢?先手動轉換成Unicode,再encode成原有格式,則python做默認轉換成Unicode處理時就不會報錯了。

str.decode('utf-8','ignore').encode('uft-8')


5.     當一個字符串中包含兩種編碼字符時最好用4所使用的方式先轉換一下,以防出現意想不到的bug。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章