Notepad++需启用“显示所有字符”(Ctrl+Shift+8或视图→显示符号→Show All Characters)才能同时显示空格(·)、Tab(→)和换行符(¶);全局默认需修改config.xml中ShowSymbol值为2;部分控制符如SOH、ETX无法显示,须用十六进制工具排查。

Notepad++ 默认不显示任何隐藏字符,所以你看到的“空白”可能是 \t、\r\n、末尾空格,甚至零宽字符——这些在 Git 提交、JSON 解析或脚本执行时都可能引发错误。最直接有效的做法是启用「显示所有字符」,而不是逐个勾选空格、Tab 或换行符。
怎么快速显示所有隐藏字符(空格、Tab、CRLF)
点击顶部菜单 视图 → 显示符号 → 显示所有字符(英文版为 View → Show Symbol → Show All Characters)。启用后立即可见:
-
·表示空格 -
→表示\t(Tab) -
¶表示行尾:Windows 下是\r\n,Linux/macOS 下只显示¶(对应\n)
这个操作是文档级开关——关掉再打开该文件,状态保留;但新建或打开其他文件时不会继承。想一劳永逸?往下看。
如何让新文件默认显示所有隐藏字符
Notepad++ 没有图形界面选项控制全局默认行为,必须手动改配置文件:
- 关闭 Notepad++
- 用管理员权限打开
config.xml(路径通常是C:\Program Files\Notepad++\config.xml或便携版所在目录) - 搜索
<guiconfig name="ShowSymbol" value="0"> - 把
value="0"改成value="2"(1仅显示行尾符,2才是「所有字符」) - 保存并重启 Notepad++
改完后,所有新打开/新建的文件都会默认显示 ·、→、¶。注意:已打开的旧文件需手动刷新(比如切换标签再切回来)才生效。
为什么有些控制字符(如 SOH、ETX)还是看不到
Notepad++ 的「显示所有字符」功能只覆盖有限的 ASCII 控制符:\t、\r、\n、空格、不间断空格等。像 \x01(SOH)、\x03(ETX)、\x1A(SUB)这类非打印控制字符,它压根不渲染任何图形符号——不是你没开对,是软件本身不支持可视化。
若真需要定位或确认这类字符:
- 打开查找对话框(
Ctrl + F),切换查找模式为「扩展」,输入\x01尝试匹配 - 装 Hex-Editor 插件(通过插件管理器安装),进入十六进制视图直观看字节
- 或者换用 VS Code + 「Hex Editor」扩展,对二进制/混合内容更友好
快捷键和常见误操作
记住这个组合键:Ctrl + Shift + 8,可随时切换「显示所有字符」开关——比翻菜单快得多。
容易踩的坑:
- 误以为「显示换行符」或「显示空格与制表符」能替代「显示所有字符」:它们只覆盖子集,漏掉关键组合(比如 Windows 的
\r\n在「仅显示换行符」下可能被简化为单个符号) - 改了
config.xml但没用管理员权限保存,导致修改不生效 - 在「显示所有字符」开启状态下复制文本,粘贴到终端或脚本里会把
·和→当作真实字符——其实它们只是显示符号,不影响实际内容
真正麻烦的从来不是怎么显示,而是哪些字符它根本不会显示——遇到诡异格式问题时,别只盯着 · 和 ¶ 看,先怀疑是不是 \x00 到 \x1F 区间的家伙在捣鬼。

















