Python源文件中設置字符編碼

最近更新時間 2020-01-08 10:41:05

默認情況下,Python 源碼文件以 UTF-8 編碼方式處理。在這種編碼方式中,世界上大多數語言的字符都可以同時用於字符串字面值、變量或函數名稱以及註釋中——儘管標準庫中只用常規的 ASCII 字符作為變量或函數名,而且任何可移植的代碼都應該遵守此約定。要正確顯示這些字符,你的編輯器必須能識別 UTF-8 編碼,而且必須使用能支持打開的文件中所有字符的字體。

如果不使用默認編碼,要聲明文件所使用的編碼,文件的 第一 行要寫成特殊的註釋。語法如下所示:

# -*- coding: encoding -*-

比如,要聲明使用 Windows-1252 編碼,你的源碼文件要寫成:

# -*- coding: cp1252 -*-

關於 第一行 規則的一種例外情況是,源碼以 UNIX "shebang" 行 開頭。這種情況下,編碼聲明就要寫在文件的第二行。例如:

#!/usr/bin/env python3
# -*- coding: gbk -*-

字符編碼集參見:https://docs.python.org/3/library/codecs.html#module-codecs

Python2的默認編碼是ASCII碼,當後來大家對支持漢字、日文、法語等語言的呼聲越來越高時,Python於是準備引入unicode,但若直接把默認編碼改成unicode的話是不現實的, 因為很多軟件就是基於之前的默認編碼ASCII開發的,編碼一換,那些軟件的編碼就都亂了。通常為了不出現亂碼需要設置 coding。

Python3文件默認編碼 UTF-8,字符串編碼為 unicode,直接打印中文一般不會出現亂碼。

rss_feed