notepad++显示问号或方块是编码错配所致,需先“以某编码打开”再“转为utf-8”,顺序不可颠倒;推荐先试gb18030,再试utf-8,确认正常后转为utf-8(无bom)并保存;同时应设置新建文档默认utf-8并勾选“以utf-8格式打开所有文件”。

Notepad++打开代码文件显示问号或方块,不是文件坏了
乱码本质是编码错配:Notepad++用UTF-8去读GBK字节,或反过来。它不会自动猜对,右下角状态栏显示的ANSI、UTF-8只是猜测值,不能信。直接点转为 UTF-8会把当前乱码固化成新文件,再也救不回来。
先“以某编码打开”,再“转为UTF-8”——顺序不能反
关键在两步分离:以 UTF-8 格式编码是临时重解释,不改文件;转为 UTF-8才真正重编码写入磁盘。操作必须按顺序来:
- 打开乱码文件后,先点菜单
编码→以 GB18030 格式编码(Windows下中文文本最常用,覆盖最全) - 文字立刻变清晰?说明原始就是GB18030/GBK系;没反应就
Ctrl+Z撤回,再试以 UTF-8 格式编码(网页、Git、Linux来源文件常属此类) - 确认界面中所有中文、标点、符号都正常(比如引号是
“”不是``,括号不歪斜),再点编码→转为 UTF-8(推荐无BOM) - 立刻按
Ctrl+S保存——不保存,关掉再开就退回原样
保存后还是乱码?检查这三个干扰点
流程没错但依然乱,问题大概率不在编码本身:
- 文件被Excel、微信、某些IDE静默另存过,真实编码已变,需确认原始来源
-
行尾符混用(\r\nvs\n)虽不影响显示,但会让VS Code或记事本跳过BOM判断,导致后续识别失败 - 禁用
Python Script、Converter等插件重试——它们有时劫持编码菜单逻辑,让点击失效
新建代码文件默认UTF-8,避免重复踩坑
每次新建.py、.js、.txt都继承系统ANSI(中文Windows即GBK),一写中文就埋雷。必须改两处:
-
设置→首选项→新建文档/默认目录→新建文档编码选UTF-8(不是UTF-8-BOM) - 勾选
以UTF-8格式打开所有文件——这会让Notepad++优先用UTF-8尝试解析,多数现代代码文件能秒认准 - 改完后,已打开的标签页要手动关闭重开,新规则才生效
最易被忽略的是:改完编码设置后,旧文件仍按原方式打开;而以…编码操作本身不触发保存提示,很多人以为切换完就搞定,其实还没保存。











