首页 > 解决方案 > Python 源文件的有效编码

问题描述

我正在尝试找出 Python 源文件的可能编码的完整列表 - 即可以进入PEP 263编码规范的编码,例如# -*- encoding: foo -*-.

此列表与“标准编码”codecs下的库文档中给出的列表相同吗?如果没有,我在哪里可以找到实际列表?

(我知道该列表与 CPython 的/Lib/encodings/aliases.py中的唯一值集相同,或者等效地,/Lib/encodings/中的文件名集相同,但我再次不确定。)

标签: pythonencoding

解决方案


是的,Python 源文件的有效编码正是 中列出的那些codecs,至少在 CPython 中是这样。

CPython 的标记器评估该值io.open(<FILE>, "r", -1, <ENCODING>, None, None, False).readline,然后使用该函数读取行(来源:CPython 的这些行Parser/tokenizer.c)。因此,open()编码声明中也支持所支持的任何编码。

另请参阅:Python 3 源文件支持哪些文件编码?及其答案


推荐阅读