编码错误¶
ID: py/encoding-error
Kind: problem
Security severity:
Severity: error
Precision: high
Tags:
- reliability
- correctness
Query suites:
- python-security-and-quality.qls
编码错误会阻止模块被评估,从而导致无法导入。尝试导入编码无效的模块将失败;将引发 SyntaxError
。请注意,在 Python 2 中,默认编码为 ASCII。
模块中存在编码错误可能表明还存在其他问题。要么模块在实际使用中从未被导入,可以删除;要么围绕导入的 try
语句错误地忽略了 SyntaxError
。
建议¶
修复编码错误是显而易见的解决办法。但是,值得调查为什么包含编码错误的模块能够持久存在,并解决该问题。
如果文件应该使用不同的编码,请通过在文件顶部添加编码规范来显式指定它。例如,要指定 UTF-8 编码,请添加行 # coding=utf-8
。
参考¶
Python PEPs: PEP 263 — Defining Python Source Code Encodings.
Python 教程: SyntaxErrors.