編碼 encode/decode

# coding=UTF-8
text = '測試'
print len(text) # 顯示 6

第 1 行是 編碼宣告(Encoding declaration),這是個魔法註解(Magic comment),它告訴 Python 直譯器,這個原始碼檔案是以 UTF-8 來編碼,如果不這麼加上這個魔法註解,Python 2.x 會以 ASCII 編碼來解讀原始碼。

在 Python 3.x 中,預設原始碼檔案必須是 UTF-8 編碼,如果原始碼檔案想要是 UTF-8 以外的編碼,同樣必須在第 1 行放置編碼宣告。

簡單理解 UTF-8和Unicode

UTF-8由unicode衍伸而來。

Unicode UTF-8
長度 中英皆2bytes 可變動,中文3bytes,英文1byte
# coding=UTF-8
text = '測試'
print len(text) # 顯示 6
# coding=UTF-8
text = u'測試' # 用unicode型態來儲存
print type(text) # 顯示 "<type 'unicode'>"
print len(text) # 顯示 2

Python 3.x 中,文字是 str 型態的實例

text = '測試'
print(type(text)) # 顯示 "<class 'str'>"
print(len(text)) # 顯示 2
text = '測試'
text.encode('UTF-8') # '測試'的utf-8
text.encode('UTF-8').decode('UTF-8') # 顯示 測試

參考來源

Python Tutorial 第一堂(4)Unicode 支援、基本 I/O

[Other]Unicode/UTF-8的差異

results matching ""

    No results matching ""