代碼第壹行(如果有腳本標記則是第二行)可以按照PEP8形式指定本代碼文件的編碼類型。若不指定則按照ascii(py2.x)或utf-8(py3)
妳需要了解的內容
清楚知道包含中文的文件是用的什麽編碼
清楚知道自己輸出端(命令行?html?GUI?)用什麽編碼
清楚知道編碼的基本知識
妳需要的python相關內容
以python2.7.x為例:
print/file.write等實質上只輸出str對象,如果輸出內容不是str對象,則使用str函數進行轉換
str函數是個殼,實質是調用對象方法__str__
encode函數是將壹個unicode類按照指定的編碼(如果不指定則使用defaultencoding)轉換為不帶編碼標記的str類
decode函數是將壹個str類按照指定編碼(如果不指定則使用defaultencoding)轉換為使用utf-8編碼的unicode類
直接print壹個容器(dict/list/tuple)的時候不會對其中的字符串進行編碼,因此看到的非ascii字符集內容將會以\xAA或者\uAAAA之類的形式輸出
Python3中,str行為與py2的unicode行為壹致;bytes行為與py2的str行為壹致。