我正在尝试找出 Python 源文件的整个可能编码列表 - 即可以采用 PEP 263 编码规范的编码,如# -*- encoding: foo -*-
.
此列表是否与codecs
库文档中"标准编码"下给出的列表相同?如果没有,我在哪里可以找到实际列表?
(我知道该列表与CPython的/Lib/encodings/aliases.py中的唯一值集相同,或者等效地,与/Lib/encodings/中的文件名集相同,但我再次不确定。
是的,Python 源文件的有效编码正是codecs
中列出的编码,至少在 CPython 中是这样。
CPython 的分词器io.open(<FILE>, "r", -1, <ENCODING>, None, None, False).readline
计算值,然后使用该函数读取行(来源:CPythonParser/tokenizer.c
的这些行(。因此,open()
支持的任何编码在编码声明中也受支持。
另请参阅:Python 3 源文件支持哪些文件编码?及其答案