python編碼

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/qq351469076/article/details/78947957

計算機只能處理數字, 文本轉換成數字才能處理, 計算機中8 bit作爲一個字節,一個字節最大的數字就是 255

python2默認ASCII編碼,

python3默認是Unicode編碼

Windows中文地區默認是gb2312

Linux默認爲utf-8

計算機是美國人發明的,一個字節可以表示素有字符,

ASCII處理中文是不夠的,中文不止255個漢字, 所以出現了GB2312編碼, 用兩個字節表示一個漢字. GB2312把ASCII也包含進去了, 同理日文韓文都發展了自身的編碼,標準越來越多,多種語言混合造就了肯定無法兼容的現象

於是Unicode出現了,將所有語言統一到一套編碼裏

但是如果內容全是英文, Unicode編碼比ASCII需要多進一倍的存儲空間, 傳輸也需要多一倍的傳輸

所以就出現了可變長的編碼’utf-8’, 把英文邊長一個字節, 漢字就三個字節,特別生僻的變成4-6字節, 如果傳輸大量的英文, utf8作用就非常明顯了

在python2裏,定義一個字符串最好在前面加u
比如: u’我愛python’ 定義的就是Unicode字節

decode()將當前字符串變成Unicode
encode()將當前unic變成utf-8

一般是先decode(‘自身編碼格式’)在encode(‘utf-8’)

調用encode(‘urf-8’)必須先decode()成Unicode

# python3, 默認爲Unicode,不用decode,直接encode即可
a = '我愛python'

# 將unicode轉換成utf-8
a.encode('utf-8')
# b'\xe6\x88\x91\xe7\x88\xb1python'

# 將utf-8轉換成Unicode,decode指明自身編碼格式
a.decode('utf-8')
# '我愛python'
# python2, 默認ASCII編碼,加u變成Unicode
a = u'我愛python'
# '\xe6\x88\x91\xe7\x88\xb1ptyhon'

# Unicode轉換成utf-8
a.encode('utf-8')
# '\xe6\x88\x91\xe7\x88\xb1ptyhon'

# utf-8轉換成Unicode
a.decode('utf-8')
# u'\u6211\u7231ptyhon'

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章