python字元編碼與轉碼
- 2020 年 1 月 13 日
- 筆記
python 2.x 字元編碼與轉碼
列印系統默認編碼格式
import sys print(sys.getdefaultencoding())
UTF-8 轉 gbk
方式:utf-8–轉成–unicode–轉成–gbk
a = "你好" print a utf8_to_unicode = a.decode("utf-8") #utf-8轉unicode print utf8_to_unicode unicode_to_gbk = utf8_to_unicode.encode("gbk") #unicode轉utf-8 print unicode_to_gbk
gbk 轉UTF-8
方式:gbk–轉成–unicode–轉成–utf-8
gbk_to_unicode = unicode_to_gbk.decode("gbk") #gbk轉unicode print gbk_to_unicode unicode_to_utf8 = gbk_to_unicode.encode("utf-8") #unicode轉uft-8 print unicode_to_utf8
總結:
1.python2.X 默認編碼是ascii ;支援中文需要加「 #-*- coding:utf-8 」;
2.gbk、utf-8之間的轉碼必須先轉碼成unicode ;
python 3.x 字元編碼與轉碼
字元編碼與轉碼
UTF-8 可變長編碼格式
python3.x 在轉碼的時候,同時把字元變成一個bytes類型;例如:b'xc4xe3xbaxc3' ;
python3.X 默認的編碼是unicode 支援中文;
列印系統默認編碼格式
import sys print(sys.getdefaultencoding())
utf-8 轉 gbk
由於python3.0 默認unicode 支援中文,所以輸入中文,可以直接轉gbk ;
a = "你好" print(a) unicode_to_gbk = a.encode("gbk") #unicode 轉 gbk print(unicode_to_gbk)
utf-8 轉 gbk
這裡編碼轉化順序:unicode–轉成–utf-8–轉成–unicode–轉成–gbk;和上邊一樣的結果。
a = "你好" print(a) moren_to_utf8 = a.encode("utf-8") #等於moren_to_utf8 = a.encode() 因為系統編碼是utf-8 print(type(moren_to_utf8.decode("utf-8"))) #utf-8 格式 decode成unicode 就成了一個字元串; utf8_to_unicdoe = moren_to_utf8.decode("utf-8") print(utf8_to_unicdoe) unicode_to_gbk = utf8_to_unicdoe.encode("gbk") print(unicode_to_gbk)
gbk 轉 utf-8
gbk_to_unicode = unicode_to_gbk.decode("gbk") #gbk 轉 unicode print(gbk_to_unicode) unicode_to_utf8 = gbk_to_unicode.encode("utf-8") #unicode 轉 utf-8 print(unicode_to_utf8)
總結:
1.python3.x 默認編碼是unicode,支援中文;
2.python3.x 在轉碼的時候,同時把字元變成一個bytes類型;例如:b'xc4xe3xbaxc3' ;
3.python3.x 轉碼成了bytes類型之後,想顯示成中文decode成unicode 就成了一個字元串;