標籤:修改 特定 instance nbsp import unicode 其他 意思 class
#-*-coding:utf-8import sys‘‘‘*首先要搞清楚,字串在Python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。decode的作用是將其他編碼的字串轉換成unicode編碼,如str1.decode(‘gb2312‘),表示將gb2312編碼的字串str1轉換成unicode編碼。encode的作用是將unicode編碼轉換成其他編碼的字串,如str2.encode(‘gb2312‘),表示將unicode編碼的字串str2轉換成gb2312編碼。總得意思:想要將其他的編碼轉換成utf-8必須先將其解碼成unicode然後重新編碼成utf-8,它是以unicode為轉換媒介的如:s=‘中文‘如果是在utf8的檔案中,該字串就是utf8編碼,如果是在gb2312的檔案中,則其編碼為gb2312。這種情況下,要進行編碼轉換,都需要先用decode方法將其轉換成unicode編碼,再使用encode方法將其轉換成其他編碼。通常,在沒有指定特定的編碼方式時,都是使用的系統預設編碼建立的代碼檔案。如下:s.decode(‘utf-8‘).encode(‘utf-8‘)decode():是解碼encode()是編碼isinstance(s,unicode):判斷s是否是unicode編碼,如果是就返回true,否則返回false*‘‘‘‘‘‘s=‘中文‘s=s.decode(‘utf-8‘) #將utf-8編碼的解碼成unicodeprint isinstance(s,unicode) #此時輸出的就是Trues=s.encode(‘utf-8‘) #又將unicode碼編碼成utf-8print isinstance(s,unicode) #此時輸出的就是False‘‘‘print sys.getdefaultencoding()s=‘中文‘if isinstance(s,unicode): #如果是unicode就直接編碼不需要解碼 print s.encode(‘utf-8‘)else: print s.decode(‘utf-8‘).encode(‘gb2312‘)print sys.getdefaultencoding() #擷取系統預設的編碼reload(sys)sys.setdefaultencoding(‘utf8‘) #修改系統的預設編碼print sys.getdefaultencoding()
python中decode與encode