SyntaxError: Non-UTF-8 code starting

这个错误是因为你的 welcome.py 文件中包含了中文(或非 UTF-8 编码的字符),但没有声明文件编码格式,导致 Python 解析失败。以下是3 种解决方法(按推荐优先级排序):

方法 1:在文件开头添加 UTF-8 编码声明(推荐)

welcome.py 的第一行添加编码声明,告诉 Python 用 UTF-8 解析文件:

python

运行

-- coding: utf-8 --

或者更简洁的写法(Python3.4+支持)

coding=utf-8

之后写你的代码(比如包含中文的打印语句)

print("欢迎学习Python!")

✅ 说明:这是 PEP-0263 标准推荐的方式,兼容所有 Python 版本,是最通用的解决方案。

方法 2:保存文件时指定 UTF-8 编码

如果你的文件没有中文,但依然报错,可能是文件保存时的编码不是 UTF-8(比如 Windows 默认的 GBK 编码)。解决步骤:

用记事本(或 VS Code、PyCharm 等编辑器)打开 welcome.py

点击「文件」→「另存为」

在「编码」选项中选择「UTF-8」

覆盖原文件保存

重新运行 python welcome.py

方法 3:临时指定 Python 运行时编码(不推荐,仅应急)

如果不想修改文件,可以在运行命令时指定编码(仅 Python3.7 + 支持):

bash

python -X utf8 welcome.py

❌ 缺点:每次运行都要加参数,不适合长期使用,优先用方法 1 或 2。

补充说明:

错误中的 \xc7 是 GBK 编码的字符(比如 "欢" 字的 GBK 编码是 0xC7-B3),说明你的文件可能是用 GBK 编码保存的,而 Python 默认用 UTF-8 解析,导致解码失败。

如果你确实需要用 GBK 编码(不推荐),也可以声明 GBK 编码:# -- coding: gbk - -,但跨平台兼容性差,建议统一用 UTF-8。

按方法 1 操作后,重新运行命令即可正常执行!

相关推荐
阿里云大数据AI技术5 分钟前
EMR Serverless StarRocks 湖仓多模态检索:One SQL on One Data,实现全文 + 标量 + 向量三路混合检索
人工智能
金銀銅鐵14 分钟前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
冬奇Lab1 小时前
Skill 系列(02):Skill 安全风险——三类攻击面的实战测试
人工智能·安全·开源
冬奇Lab1 小时前
每日一个开源项目(第138篇):OpenMontage - 把 AI 编程助手变成完整的视频制作团队
人工智能·开源·claude
米小虾2 小时前
智谱港股盘中市值突破万亿港元!GLM-5.2 开源引爆国产 AI 价值重估
人工智能·chatglm (智谱)
阿里云大数据AI技术2 小时前
义乌小商品城基于MaxFrame AI Function的亿级AI 数据产线提速之路
人工智能
甲维斯3 小时前
用AI还原《坦克大战》并3D化升级!
前端·人工智能·游戏开发
IT_陈寒4 小时前
SpringBoot自动配置坑了我一晚上,原来问题出在这
前端·人工智能·后端
FreakStudio4 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机