1. 程式人生 > >python3中各個字符編碼的轉換

python3中各個字符編碼的轉換

code -s span utf pri 轉換 nic 順序 utf-8

a=‘我很好‘    ####python3 默認的編碼為unicode
###unicode>gb2312
unicode_gb2312=a.encode(‘gb2312‘) ###因為默認是unicode所以不需要decode(),直接encode成想要轉換的編碼如gb2312
print(‘我的gb2312‘,unicode_gb2312) ###返回結果: 我的gb2312 b‘\xce\xd2\xba\xdc\xba\xc3‘
###gb2312>utf8
gb2312_utf8=unicode_gb2312.decode(‘gb2312‘).encode(‘utf-8‘)
##當前字符為gb2312所以要先decode成unicode(decode中傳入的參數為當前字符的編碼集)然後再encode成utf-8

print(‘我是utf-8‘,gb2312_utf8) ###返回結果: 我是utf-8 b‘\xe6\x88\x91\xe5\xbe\x88\xe5\xa5\xbd‘
###utf8>gbk
utf8_gbk=gb2312_utf8.decode(‘utf-8‘).encode(‘gbk‘)##當前字符集編碼為utf-8要想轉換成gbk先decode成unicode字符集再encode成gbk字符集
print("我是gbk",utf8_gbk)
###返回結果: 我是gbk b‘\xce\xd2\xba\xdc\xba\xc3‘

###utf8>uicode
utf8_unicode=utf8_gbk.decode(‘gbk‘) ####註意當轉換成unicode時 並不需要encode()
print(‘我是unicode‘,utf8_unicode) ###返回結果: 我是unicode 我很好
###unicode>gb18030
unicode_gb18030=utf8_unicode.encode(‘gb18030‘)
print(‘我是gb18030‘,unicode_gb18030)
###返回結果: 我是gb18030 b‘\xce\xd2\xba\xdc\xba\xc3‘


###總結各個編碼的互相轉換都要先轉換成unicode然後通過unicode再轉換成想要的編碼
##從上面可以看出gb2312 ,gbk,gb18030返回的結果都是一樣的,那是應為這3個都是中國的編碼,所以都是向下互相兼容的
##中國的編碼最先出來的是gb2312,然後是gb18030,最後是gbk,它們所支持的字符數也是隨著順序逐漸增多從最初的7000多到現在的近3萬個

python3中各個字符編碼的轉換