標籤:div 檔案 str 添加 產生 中文字元 abc 二進位 post
以下內容適用與Python 2.7版本。
1.關於 ASCII Unicode utf-8:
ASCII:127個數字 A -- 65 z -- 122 一個位元組表示一個字元(255)
Unicode:通常兩個位元組(65535)表示一個字元,生僻字元可能四個位元組表示一個字元。ASCII在Unicode二進位表示在前面補0。(電腦使用的編碼為Unicode)
如果一個文檔中,全是英文字元,若使用Unicode就會造成記憶體的浪費,所以產生了utf-8(可變長編碼)。
ASCII在utf-8中佔用記憶體為一個位元組,而中文則佔用三個位元組。
2.電腦中使用Unicode編碼,當涉及到硬碟儲存時,會將Unicode轉換為utf-8儲存。例如:記事本的儲存。
同樣,在網頁上,會將Unicode的資料轉換為utf-8顯示在瀏覽器上。
3.Python中 ASCII 與 數位轉換
>>> ord(‘A‘)65>>> chr(65)‘A‘
4.Python添加了對Unicode的支援,以Unicode表示的字串用u‘...‘表示
>>> print u‘中文‘中文>>> u‘中‘u‘\u4e2d‘
5.把u‘xxx‘轉換為UTF-8編碼的‘xxx‘用encode(‘utf-8‘)方法:(unicode 轉換成 utf-8)
>>> u‘ABC‘.encode(‘utf-8‘)‘ABC‘>>> u‘中文‘.encode(‘utf-8‘)‘\xe4\xb8\xad\xe6\x96\x87‘
6.反過來,把UTF-8編碼錶示的字串‘xxx‘轉換為Unicode字串u‘xxx‘用decode(‘utf-8‘)方法:(utf-8 轉換成 unicode )
>>> ‘abc‘.decode(‘utf-8‘)u‘abc‘>>> ‘\xe4\xb8\xad\xe6\x96\x87‘.decode(‘utf-8‘)u‘\u4e2d\u6587‘>>> print ‘\xe4\xb8\xad\xe6\x96\x87‘.decode(‘utf-8‘)中文
7.Python檔案頭指定讀取的編碼格式(檔案含中文的情況下,且中文字串必須是Unicode字串)
#!/usr/bin/env python# -*- coding: utf-8 -*-
Python編碼問題