python中decode和encode的區別

2021-08-15 17:53:28 字數 1386 閱讀 1787

#-*-coding:utf-8

import 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編碼的解碼成unicode

print isinstance(s,unicode)   #此時輸出的就是true

s=s.encode('utf-8')           #又將unicode碼編碼成utf-8

print 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的使用

python中的編碼是採用unicode編碼的,在做編譯轉換時,需要使用unicode作為中間編碼 情況一 編碼一 unicode編碼 將其他編碼的字串解碼 decode成unicode a.decode gb2312 或者 unicode.unicode a,gb2312 情況二 unicode編...

python中decode和encode的區別

import sys 字串在python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字串解碼 decode 成unicode,再從unicode編碼 encode 成另一種編碼。decode的作用是將其他編碼的字串轉換成unicode編...

Python中的decode解碼和encode編碼

decode是解碼 讀取文字或網頁時的過程是decode解碼,需要依據文字或網頁的編碼格式來指定解碼格式。它是將不是unicode的格式解碼 換 成unicode格式讀取到記憶體中,使用時必須知道物件源格式。如str1.decode gb2312 表示將gb2312編碼的字串轉換成unicode編碼...