編碼和解碼

2022-03-16 00:08:22 字數 1244 閱讀 6211

'''str是以位元組表示的文字,unicode是以字元表示的文字。

您可以將文字從位元組解碼為unicode,並使用某種編碼將unicode編碼為位元組。

即:'''

#str - --------> str(unicode) - --------> str

# encode:編碼,程式設計不可識別的unicode

# decode:解碼, 恢復成字串和中文等

def test1():

u = '中文' # 指定字串型別物件u

str1 = u.encode('gb2312') # 以gb2312編碼對u進行編碼,獲得bytes型別物件

print(str1) #str1:#>>>b'\xd6\xd0\xce\xc4'

str2 = u.encode('gbk') # 以gbk編碼對u進行編碼,獲得bytes型別物件

print(str2)

#>>>b'\xd6\xd0\xce\xc4'

str3 = u.encode('utf-8') # 以utf-8編碼對u進行編碼,獲得bytes型別物件

print(str3)

#>>>b'\xe4\xb8\xad\xe6\x96\x87'

u1 = str1.decode('gb2312') # 以gb2312編碼對字串str進行解碼,獲得字串型別物件

print(u1)

#>>>中文

#u2 = str1.decode('utf-8') # 報錯,因為str1是gb2312編碼的

u3 = str3.decode('utf-8') #str3是utf-8編的馬,所以可以解

print(u3)

#>>>中文

#print('ddd'.decode('utf-8')) #報錯,已經是字串了,還解什麼碼, 但是可以編碼 如encode('utf-8')

print(type(str1))

#>>>print(type(u3))

#>>>if __name__=='__main__':

test1()

讀取檔案,發現資料檔案的編碼是gb2312,所以讀取一行內容後需要轉為unicode然後再轉為utf8:

line = line.decode('gbk').encode('utf-8')

(奇怪的是用』gb2312』就不行)

unicode是中轉站

編碼和解碼

1 編碼 encode 編碼方式 拿到明文編碼後對應的位元組 ascii 碼 不支援中文,支援英文 數字 字母 符號 gbk 國標 支援中文 支援英文 數字 字母 符號 英文用16位 中文用16位 unicode 萬國碼 支中文 英文 數字 字母 英文32位 中文32位 utf 8 長度可變的萬國碼...

編碼和解碼

ascii碼 不支援中文,支援英文,數字,符號,使用乙個位元組 8位 來表示 gbk碼 國標碼,支援中文,英文,數字,符號.中文 16位 兩個位元組 英文 16位 兩個位元組 unicode 萬國碼,支援中文,英文,數字,符號 中文 32位 四個位元組 英文 32位 四個位元組 utf 8 長度可變...

ios url 編碼和解碼

1.url編碼 ios中http請求遇到漢字的時候,需要轉化成utf 8,用到的方法是 nsstring encodingstring urlstring stringbyaddingpercentescapesusingencoding nsutf8stringencoding 2.url解碼 請...