python3中各個字元編碼的轉換

2021-09-21 13:46:36 字數 1306 閱讀 4134

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萬個

統計字串中各個字元出現的次數

import string import random x string.ascii letters string.digits string.punctuation 構造字母 數字 標點符號的字串集合 y random.choice x for i in range 1000 隨機產生乙個具有10...

Python3中的編碼

1.編碼 1.1 ascii 乙個字元佔8位,1.2 utf 8 乙個字元佔8位 乙個中文佔24位 1.3 gbk 乙個字元佔8位 乙個中文佔16位 1.4 unicode 1.4 只說unicode的32位 乙個字元佔32位 乙個中文字同樣佔32位 問題 unicode中的編碼方式能否utf 8中...

統計檔案中的各個字串的數量

include include includestruct str struct str head null,n null int flag fist 1 int process char int main else n malloc sizeof struct str 同上 n next null...