2 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
看看PEP3120將 python 源代碼的默認(rèn)編碼更改為 UTF-8
因此,對(duì)于 python 3.x,可以在文檔中找到:
如果 Python 腳本第一行或第二行中的注釋與正則表達(dá)式 coding[=:]\s*([-\w.]+) 匹配,則將此注釋作為編碼聲明處理 [...]推薦編碼表達(dá)式的形式是:
# -*- coding: <encoding-name> -*-這也被 GNU Emacs 認(rèn)可,以及
# vim:fileencoding=<encoding-name>這被 Bram Moolenaar 的 VIM 認(rèn)可。如果未找到編碼聲明,則默認(rèn)編碼為 UTF-8
因此,帶回家的信息是:
python 3.x 不需要指定 utf-8,因?yàn)樗悄J(rèn)值
編碼行的編寫(xiě)方式在某種程度上是個(gè)人選擇(只是文檔中的推薦),它只需要匹配正則表達(dá)式。

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
從 Python 3 開(kāi)始,默認(rèn)編碼是 utf-8。您仍然可以使用特殊格式的 comment 更改編碼# -*- coding: <encoding name> -*-
。
該文檔建議使用,因?yàn)樗怯蒅NU Emacs的也認(rèn)識(shí)到這一點(diǎn)的編碼表達(dá)。
由于 python 檢查前兩行是否與 regex 匹配coding[=:]\s*([-\w.]+)
,因此# coding=utf-8
也可以確保 utf-8 編碼,但 GNU Emacs 無(wú)法識(shí)別它。
添加回答
舉報(bào)