encode()方法 把字串變成用於儲存或傳輸的位元組序列就是編碼
decode()方法 把位元組序列變**類可讀的文字字串就是解碼
示例 4-1 編碼
如果想幫助自己記住 .decode() 和 .encode() 的區別,可以把位元組序列想成晦澀難懂的機器磁芯轉儲,把 unicode 字串想成「人類可讀」的文字。那麼,把位元組序列變**類可讀的文字字串就是解碼,而把字串變成用於儲存或傳輸的位元組序列就是編碼
4.5 處理文字檔案
處理文字的最佳實踐是「unicode 三明治」(如圖 4-2 所示)。 意思是,
要盡早把輸入(例如讀取檔案時)的位元組序列解碼成字串。這種三明
治中的「肉片」是程式的業務邏輯,在這裡只能處理字串物件。在其他
處理過程中,一定不能編碼或解碼。對輸出來說,則要盡量晚地把字元
串編碼成位元組序列。多數 web 框架都是這樣做的,使用框架時很少接
觸位元組序列。例如,在 django 中,檢視應該輸出 unicode 字串;
django 會負責把響應編碼成位元組序列,而且預設使用 utf-8 編碼
unicode 三明治——目前處理文字的最佳實踐
在 python 3 中能輕鬆地採納 unicode 三明治的建議,因為內建的 open
函式會在讀取檔案時做必要的解碼,以文字模式寫入檔案時還會做必要
的編碼,所以呼叫 my_file.read() 方法得到的以及傳給
my_file.write(text) 方法的都是字串物件。
python 2.6 或 python 2.7 使用者要使用 io.open() 函式才能得到讀寫檔案時自動執行的解碼和編
碼操作。
來看下面的一段**
Python中的編碼
原文 http users.ir lab.org liulong blog archives 001962.html 計算機以0,1二進位制位來儲存資訊,所以字元在計算機中的表示也是二進位制位,那每個字元所對應的二進位制位是什麼,在開始的計算機中因為只考慮英語,所以不超過256個字元,即用乙個位元組...
Python 中的字元編碼
1 str型別可以理解為乙個二進位制block,或multibyte 2 multibyte str.decode unicode 3 unicode str.encode multibyte str binary block 4 unicode str 的操作引數也應為unicode,如 unic...
python中的編碼處理
usr bin env python coding cp936 import codecs import sys if name main if len sys.argv 5 print python s infile decodetype outfile encodetype sys.argv 0...