我們知道在Python的源碼的頭文件中要聲明編碼方式,如果妳不只是會用到的ASCII碼,很多人都寫得都有點差別:
#編碼= utf-8的
#coding:UTF-8
# - * - 編碼:utf-8 - * -
那麽怎樣寫才是有效的呢,哪些又是無效的呢??
概要:這個PEP的目的是介紹在壹個Python的源文件中如何聲明編碼的語法。隨後的Python解釋器會在解釋文件的時候用到這些編碼信息。最顯著的是源文件中對統壹的解釋,使得在壹個能識別的Unicode的編輯器中使用如FUT-8編碼成為可能
怎麽聲明呢?如果在Python的中我們並沒有聲明別的編碼方式,就是以ASCII作為編碼標準編碼方式的
為了定義源文件的編碼方式,壹個魔法是的聲明應當被放在這個文件的第壹行或者是第二行例如:
#編碼=?<編碼名稱>或者(使用流行編輯器中的格式化方式)
#!的/?usr?/?bin中/蟒蛇?#?-?*?-?編碼:<編碼名稱>?-?*?-
或者
#!的/?usr?/?bin中/蟒蛇?#vim:set?fileencoding?=?<encoding?name>:
不管怎麽樣,這些在第壹行或者第二行的聲明都要符合正則表達式?
“編碼[:=]?\?S?*([?-?\?W]?+)”所以我們就可以知道為什麽使用冒號或者等號都可以了,如果聲明的編碼蟒不能識別就會報錯
例子這些是壹些例子,用於闡明在
Python源
文件頂部定義源代碼編碼的不同樣式:
1.使用解釋器二進制文件並使用Emacs樣式文件編碼
註釋:
#!/ usr / bin / python
# - * - 編碼:latin-1 - * -
import os,sys
...
#!/ usr / bin / python
# - * - 編碼:iso-8859-15 - * -
import os,sys
...
#!/ usr / bin / python
# - * - 編碼:ascii - * -
import os,sys
...
2.沒有解釋行,使用純文本:
#這個Python文件使用以下編碼:utf-8
import os,sys
...
3.文本編輯器可能有不同的方式來定義文件的
編碼,例如
#!/ usr / local / bin / python
#coding:latin-1
import os,sys
...
4.沒有編碼註釋,Python的解析器將采用ASCII
文本:
#!/ usr / local / bin / python
import os,sys
...
5.編碼不起作用的註釋:
缺少“編碼:“prefix:
#!/ usr / local / bin / python
#latin-1
import os,sys
...
編碼註釋不就行了1或2:
#在/ usr / local / bin目錄/蟒蛇!
#
# - * -編碼:拉丁語1 - * -
進口操作系統,SYS
...
不支持的編碼:
#!的/ usr /本地/ bin / python
# - * - 編碼:utf-42 - * -
導入os,sys
...
以上幾個例子充分說明了哪些是正確的寫法,哪些是正確的寫法