一:Python2python
- python2默認編碼格式是ascii碼,解釋器解釋代碼時會將代碼以及代碼中的字符串等轉換成ascii碼再執行。這樣會致使字符串輸出或傳輸時,與當前環境編碼格式不一樣的話會顯示亂碼。
- 咱們能夠經過 代碼文件開頭編碼聲明 改變編碼格式,告知解釋器 以什麼編碼格式 解釋文件內容,例如:在文件頭聲明瞭 #_*_coding:utf-8*_
- 在有#_*_coding:utf-8*_的狀況下,字符串變量若是寫成name=u"字符串"格式,那這個字符串就是unicode格式解釋和保存的;不加這個u就是utf-8格式
二:Python3編碼
- python3默認文件編碼格式就是utf-8,因此能夠直接在代碼中寫中文,不須要文件頭聲明編碼了。
- 字符串變量默認會被unicode格式解釋和存儲,不須要再顯式加 u 前綴。
三:轉碼code
一個原則:全部字符集的轉換,都要先decode成爲unicode,再encode成爲其餘格式,不能直接轉其餘格式,不然會解析失敗成爲亂碼。utf-8