Atom不会自动修正文件编码,乱码主因是保存编码与解析编码不一致;应先用Notepad++确认真实编码,再转为UTF-8 without BOM并统一项目编码,同时在config.cson中设encoding: "utf8"锁定默认解析方式。

确认当前文件的实际编码格式
Atom 不会自动修正文件本身的编码,它只是按你指定的方式去读。乱码的第一原因往往是文件保存时用的编码和 Atom 当前解读的编码不一致。比如你用记事本以 GBK 保存了一个带中文注释的 .c 文件,但 Atom 默认按 UTF-8 解析,就会显示为方块或问号。
操作建议:
- 用
Notepad++打开该文件 → 查看右下角编码标识(如GBK或UTF-8 without BOM)→ 若是GBK,不要直接另存为UTF-8,先「转为 UTF-8 编码」再保存,否则中文会变乱码 - 在 Atom 中右键编辑区 →
Change Encoding→ 选对匹配的编码(不是“猜”,而是根据上一步确认的真实编码) - 若频繁遇到不同编码混用,建议统一项目内所有源文件为
UTF-8 without BOM,这是 C/C++/Python 等语言事实上的跨平台标准
设置 Atom 默认读取编码为 UTF-8
Atom 的默认编码行为由配置项 encoding 控制,默认值其实是 utf8,但某些旧插件(如 atom-script)或 Windows 系统区域设置可能覆盖它。必须显式锁定。
操作建议:
- 打开 Atom 配置文件:
Atom → Config... → Edit Config File(即config.cson) - 在
core:区块内添加或修改这一行:encoding: "utf8"(注意是字符串"utf8",不是"UTF-8",Atom 内部识别小写) - 保存后重启 Atom;之后新建/打开文件,只要没手动切换编码,就始终按
utf8解析 - ⚠️ 不要设成
gbk或cp936:这会让英文路径、符号、第三方库头文件出现解析错误,得不偿失
终端输出中文乱码时别只盯编辑器
注释显示正常 ≠ 运行时 printf 或 print() 输出中文正常。Atom 自带的 script 或 platformio-ide-terminal 插件调用系统命令行执行程序,而 Windows 控制台默认是 GBK 编码,与源文件 UTF-8 冲突。
常见现象:
- C 程序里
printf("你好\n");在 Atom 终端里显示为</li> <li>Python 脚本中 <code>print("测试")输出乱码,但文件本身注释显示正常
解决路径:
- Windows 用户:进「控制面板 → 时钟和区域 → 区域 → 管理 → 更改系统区域设置」→ 勾选「Beta 版:使用 Unicode UTF-8 提供全球语言支持」→ 重启
- 或临时方案:在运行前设置环境变量,例如在 Atom 终端中先执行:
set PYTHONIOENCODING=utf-8(Python)或set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8(Java) - 不推荐改
chcp 65001:它只对当前终端生效,且与某些 C 运行时库不兼容,容易崩溃
字体缺失会导致中文显示为空白或方块
即使编码全对,如果 Atom 使用的等宽字体不包含中文字符集,中文注释仍会显示为方块(□)或空白。Atom 默认的 Menlo、Consolas、Monaco 都不支持中文。
操作建议:
- 打开
Atom → Settings → Editor→ 找到Font Family输入框 - 填入一个已安装的中文字体,例如:
"Fira Code", "Microsoft YaHei", "SimSun", "KaiTi"(用英文逗号分隔,Atom 会逐个回退) - 验证是否生效:在设置页底部的「Editor Font Preview」区域应能看见中文预览
- Windows 用户可直接在「控制面板 → 字体」里确认字体名拼写,注意
SimSun是宋体,NSimSun是新宋体,二者不通用

















