1 字元編碼將人類的字元編碼/轉換成計算機能識別的數字
這種轉換必須遵循一套固定的標準,該標準無非是
人類字元與數字的對應關係,稱之為字元編碼表
0001
1011
a---->0000 0000
b---->0000 0001
c---->0000 0002
d---->0000 0003
bit:二進位制位
bytes:位元組
ascii碼表:用1bytes表示乙個英文本元
1英文本元=8bit=1bytes
gbk:用2bytes表示乙個中文字元,1bytes去表示英文本元
unicode:記憶體中使用的是unicode編碼,unicode把全世界的字元都建立好對應關係
用2bytes去表示乙個字元
0000 0000 0000 0000
utf-8 #unicode tranform format-8
utf-8 用1bytes表示英文,用3bytes表示中文
#字元編碼需要記住的概念
#01 記憶體中固定使用unicode編碼,我們唯一可以改變的儲存到硬碟時使用的編碼
#02 要想保證訪問檔案不亂亂碼,應該保證文件當初是以什麼編碼格式存的,就應該以什麼編碼格式去讀取
#03 python3直譯器預設編碼是utf-8
python2直譯器預設編碼是ascii
在python2中有兩種字串編碼格式
1、unicode:
x=u'上'
2、unicode編碼後的結果
x='上' #如果檔案頭為coding:utf-8,那麼"上"被存成utf-8格式的二進位制
在python3只有一種字串編碼格式:
1、unicode
x='上』
#04 編碼與解碼
unicode-------編碼encode-------->gbk
unicode<-------解碼decode--------gbk
#***
#coding:gbk
x='上』
x.decode('gbk')
#coding:gbk
x=u'上'
x.encode('gbk')
x.encode('utf-8')
#在python3中(*****)
x='上'
x只能進行編碼
x.encode('gbk')
總結python2與python3:
(***)
在python2中的字元粗型別str都是unicode按照檔案頭的指定的編碼,編碼之後的結果
在python2中也可以製造unicode編碼的字串。需要在字串前加u
(*****)
在python3中的字串型別str都是unicode編碼的
所以python3中的字串型別可以編碼成其他字元編碼格式,編碼的結果
是bytes型別
Python 的字元編碼
配置 python 2.7 sublime text 2 os x 10.10 本文意在理清各種編碼的關係並以此解決 python 中的編碼問題。只有先了解字元表 編碼字符集 字元編碼三者的基本概念,才能直入編碼問題的核心。字元表是乙個系統支援的所有可讀或者可顯示的抽象字元的集合。也就是說字元表裡面...
python 的字元編碼
unicode編碼 unicode編碼為世界上所有字元都分配了乙個唯一編號,為十六進製制,如中文簡體漢字 渣 的 unicode編號就是 6e23,unicode僅僅定義了每個字元的編號,並沒有定義如何將這個編號進行儲存的方式,所以後來出現了utf 8,gbk等編碼格式,它們都是 unicode 的...
Python 的字元編碼
在py2中,有兩種字串型別 str型別和unicode型別 str和unicode分別存的是位元組資料 編碼不確定直譯器解釋 和unicode資料 python 2.7.10 default,oct 6 2017,22 29 07 type help credits or license for m...