unicode編碼: unicode編碼為世界上所有字元都分配了乙個唯一編號, 為十六進製制, 如中文簡體漢字 「渣」 的 unicode編號就是 6e23,
unicode僅僅定義了每個字元的編號,並沒有定義如何將這個編號進行儲存的方式,所以後來出現了utf-8, gbk等編碼格式, 它們都是 unicode 的一種實現方式, 仍然使用了unicode 中的唯一編號,個人對其的簡單理解就是在unicode編碼的基礎之上又定義了對字元的儲存方式.
在計算機最早期,只有ascii編碼,但是ascii編碼方式乙個字元只占用乙個位元組,這樣就只能表示英文本元了,這時候中文字元就無法表示了,所以我國出現了gb2312的編碼方式,使得中文可以表示,各個國家有著各個國家的語言,如果每個語言都是用一套各自的編碼方式,那這個就沒有辦法統一了,別人寫的**可能換個語言環境就無法正常執行了,因此才出現了unicode,統一了各種編碼方式
utf-8的產生是為了節省空間而出現的,前面講到unicode通常占用2個位元組,但是對於英文本元其實只需要乙個位元組就可以表示了,因此utf-8為了節省空間實現了動態長度的表示,比如它在編碼中對英文本元用1個位元組表示,而通常對於漢字就是用3個位元組表示。
python2預設字元編碼為:ascii, ascii碼 包含了128個字元, 其中包括所有的英文本元, 阿拉伯數字, 標點符號, 控制符號等
在python2 中使用sys.getdefaultencoding() 得到的是 ascii
在python2中字串分為 unicode 和 str 型別
str : 'this is a str'
unicode: u'this is a unicode code'
事實上, python2 中被引號括起來的字串就是 str, 而str 本身 就是一串位元組碼(byte).如果被括起來字元是字母,那麼就是ascii 編碼的字元。如果被括起來字元是漢字,那麼也能得到一串位元組, 但是位元組碼是什麼編碼格式的就不確定了。所以最好加上u'', 指定為unicode 編碼。
str to unicode 使用decode(), 解碼unicode to str 使用encode(), 編碼
如果要將str 轉換成unicode, 那麼需要使用decode(), 將ascii 字元轉換成unicode 字元。python3預設字元編碼為:utf-8在python3 中使用如下**得到的是 utf-83. python3 中
sys.getdefaultencoding()在python3中字串分為 str 和 bytes 兩種型別, 沒有unicode 型別的字串了。byte 表示:前者包含原始的8位值str 表示: unicode 字元 (用雙引號括起來就是str 型別的)
str to bytes 使用 encode(), 編碼bytes to str 使用 decode(), 解碼
因為 python3 中沒有 unicode 型別的字串, 所有在 python3 中使用下面這種方式定義字串是沒有意義的
my_str = u"渣男不但醜"需要指定檔案編碼f = open('url編碼的方式是把需要編碼(非ascii)的字元轉化為 %xx 的形式。通常 url 編碼是基於 utf-8 的(當然這和瀏覽器平台有關)。1.txt
','r
',encoding='
utf-8
')
在 python2.x 中的用法是:
urllib.quote(text)
python3.x 中是
urllib.parse.quote(text)
按照標準, url 只允許一部分 ascii 字元(數字字母和部分符號),其他的字元(如漢字)是不符合 url 標準的。
python的字元編碼
1 字元編碼 將人類的字元編碼 轉換成計算機能識別的數字 這種轉換必須遵循一套固定的標準,該標準無非是 人類字元與數字的對應關係,稱之為字元編碼表 0001 1011 a 0000 0000 b 0000 0001 c 0000 0002 d 0000 0003 bit 二進位制位 bytes 位元...
Python 的字元編碼
配置 python 2.7 sublime text 2 os x 10.10 本文意在理清各種編碼的關係並以此解決 python 中的編碼問題。只有先了解字元表 編碼字符集 字元編碼三者的基本概念,才能直入編碼問題的核心。字元表是乙個系統支援的所有可讀或者可顯示的抽象字元的集合。也就是說字元表裡面...
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...