windows记事本打开中文文本乱码的根本原因是默认用ansi(如gbk)解析无bom的utf-8文件;可通过手动另存为utf-8即时修复,或修改注册表idefaultencoding为65001实现默认utf-8解码,再配合替换templates目录下的new text document.txt模板为utf-8无bom格式,确保新建文件符合现代开发规范。

Windows系统自带记事本打开中文文本常显示为方块或乱码,根本原因是它默认用ANSI(如GBK)解析无BOM的UTF-8文件,而现代网页、脚本、协作平台普遍要求UTF-8无BOM格式,不改默认编码就会反复踩坑。
手动另存为指定UTF-8(即时救急)
这一步操作起来很简单,直接在保存时选对编码就能立刻修复当前文件,适合处理单个紧急文档。
用记事本打开乱码文件 → 点击“文件”→“另存为” → 在对话框底部找到“编码”下拉菜单 → 选择【UTF-8】(注意不是“UTF-8-BOM”)→ 点击“保存”。
关闭当前窗口,重新用记事本打开刚保存的文件,确认中文是否清晰可读。若仍乱码,说明原始文件实际是GBK编码,此时应换选“ANSI”再试一次。
注册表强制默认UTF-8(一劳永逸)
此方法让记事本新建文档和打开无BOM文件时自动按UTF-8解码,避开ANSI陷阱,适用于Win10/Win11全版本。
按Win + R输入regedit回车 → 导航至HKEY_CURRENT_USER\Software\Microsoft\Notepad → 右侧空白处右键 → 新建 → DWORD (32位)值 → 命名为iDefaultEncoding。
双击该值,将“数值数据”设为【65001】,基数选十进制 → 关闭注册表编辑器 → 彻底退出记事本进程(任务管理器中结束所有notepad.exe)→ 重启记事本。
新建一个空白文档,输入中文后直接保存,不点“另存为”,观察状态栏是否显示“UTF-8”——若显示,说明生效;若仍显示ANSI,说明注册表路径错误或未完全退出进程。
替换系统新建模板实现UTF-8无BOM
即使注册表设了UTF-8,默认新建的.txt文件仍可能带BOM,而网页HTML、JSON、Python脚本等严禁BOM。必须用无BOM模板覆盖系统默认行为。
方法一:用PowerShell生成标准模板
以管理员身份打开Windows终端 → 执行命令:PowerShell -Command "'' | Out-File -FilePath '%USERPROFILE%\Templates\New Text Document.txt' -Encoding UTF8NoBOM" → 回车执行。
方法二:用Notepad++制作模板
新建空白文件 → 输入一个空格 → 用Notepad++另存为 → 编码选“UTF-8无BOM” → 文件名填New Text Document.txt → 保存到%USERPROFILE%\Templates目录,覆盖原文件。
【关键提示】模板文件名必须严格为New Text Document.txt,大小写与空格都不能错,否则右键“新建文本文档”不会调用它。











