1 错误原因分析
在 Python 中遇到 SyntaxError: Non-ASCII character
错误,通常是因为代码中包含了 非 ASCII 字符(如中文、特殊符号等),但文件未声明正确的编码格式。
问题原因 | 解决方法 |
---|---|
文件包含中文/特殊符号 | 在文件开头添加 # coding: utf-8 |
文件实际编码非 UTF-8 | 用编辑器将文件另存为 UTF-8 格式 |
Python 2 默认不支持 UTF-8 | 升级到 Python 3 或显式声明编码 |
2 解决方法
2.1 添加文件编码声明
在 Python 文件 开头(第一行或第二行)添加编码声明,指定文件使用 UTF-8 编码:
# -*- coding: utf-8 -*-
或可以简写为:
# coding: utf-8
示例:
# -*- coding: utf-8 -*-
print("你好,世界!") # 现在可以正常使用中文
2.2 确保文件实际编码为 UTF-8
- 检查编辑器设置:确保代码编辑器保存文件时使用 UTF-8 编码(无 BOM)。
- VS Code:右下角点击编码 → 选择 "UTF-8"。
- Notepad++:编码 → UTF-8(无 BOM)。
- PyCharm:检查自己所使用的python解释器是否是python2
- 避免混合编码:文件中的所有字符(包括注释)需统一为 UTF-8。
2.3 Python 3 的默认编码
- Python 3 默认使用 UTF-8 编码,通常无需显式声明。
- 但如果文件被其他工具修改过(如 Windows 记事本),仍可能触发此错误。
3 常见错误场景
3.1 未声明编码时直接使用中文:
print("你好") # SyntaxError: Non-ASCII character
3.2 文件编码声明位置错误:
x = 1
# -*- coding: utf-8 -*- # 声明必须在前两行!
print("你好")
如果您觉得本文章对您有帮助,别忘了点赞、收藏加关注,更多干货内容将持续发布,您的支持就是作者更新最大的动力。本专栏将持续更新,有任何问题都可以在评论区讨论