python解釋器在加載 .py 文件中的代碼時,對內容默認進行ascill編碼,所以存在中文會報錯,因此須要告訴python解釋器,用什麼編碼來執行源代碼。)python
ASCII碼,主要用於顯示現代英語和其餘西歐語言,其最多隻能用 8 位來表示(一個字節),即:2**8 = 256,因此,ASCII碼最多隻能表示 256 個符號。windows
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每一個字符設定了統一而且惟一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 **16 = 65536。python2.7
UTF-8,是對Unicode編碼的壓縮和優化,他再也不使用最少使用2個字節,而是將全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存... 優化
問題:python程序在windows終端下亂碼
編碼
Windows的默認編碼爲GBK,Linux的默認編碼爲UTF-8。spa
python2.7 中utf-8轉gbk需先轉成unicode再由unicode轉成gbk。code
decode:解碼utf-8
encode:編碼ci
python3中可直接由utf-8轉成gbk。python3內部會先把utf-8轉成unicode再由unicode轉成gbk。(python3中unicode也就沒有了)unicode