Windows 11记事本默认UTF-8带BOM易致乱码,可通过五种方法解决:一、注册表设iDefaultEncoding为65001启用UTF-8;二、替换Templates模板为无BOM文件;三、PowerShell用UTF8NoBOM生成模板;四、用Notepad++转码并设为默认程序;五、调整系统区域设置为中文(简体,中国)。

如果您在Windows 11中使用记事本新建或保存文本文件时,默认编码为ANSI或UTF-8 with BOM,导致中文或其他多语言字符在部分环境(如网页、脚本运行)中显示异常,则需主动修改记事本的默认编码行为。以下是实现默认UTF-8无BOM保存的多种方法:
一、通过注册表强制记事本默认使用UTF-8编码
记事本启动时默认采用系统ANSI代码页解析无BOM文件,易引发乱码;修改注册表可使新建和打开文件时优先以UTF-8(代码页65001)读取与保存,且不带BOM。
1、按Win + R组合键,输入regedit并回车,打开注册表编辑器。
2、导航至路径:HKEY_CURRENT_USER\Software\Microsoft\Notepad。
3、在右侧空白处右键 → 新建 → DWORD (32位)值,命名为iDefaultEncoding。
4、双击该值,将“数值数据”设为65001,基数选择“十进制”。
5、关闭注册表编辑器,重启记事本程序,此后新建文档及未指定编码的打开操作均默认使用UTF-8。
二、设置记事本保存时不添加BOM
Windows记事本在选择UTF-8编码保存时默认写入BOM(字节顺序标记),而多数Web标准与脚本解释器要求UTF-8无BOM格式;仅靠注册表无法禁用BOM,需配合模板文件或第三方工具实现无BOM输出。
1、新建一个空白文本文档,输入任意内容(如一个空格),保存为UTF-8格式。
2、使用支持无BOM保存的编辑器(如Notepad++)重新打开该文件,执行“编码 → 转为UTF-8无BOM”。
3、另存为名为TXTUTF8NOBOM.txt,并复制其完整二进制内容(不含任何字符)。
4、将该文件设为系统新建模板:进入路径%USERPROFILE%\Templates,替换或新建同名模板文件。
三、使用命令行创建UTF-8无BOM模板文件
PowerShell原生命令可精确控制BOM写入行为,利用Out-File -Encoding UTF8NoBOM可生成标准无BOM文件,作为记事本新建操作的底层模板来源。
1、以管理员身份打开Windows终端。
2、执行命令:echo $null | Out-File -FilePath "$env:USERPROFILE\Templates\New Text Document.txt" -Encoding UTF8NoBOM。
3、确认该路径下已生成无内容、无BOM的TXT文件。
4、此后右键“新建 → 文本文档”,实际调用的即为此UTF-8无BOM模板。
四、借助第三方编辑器替代并导出无BOM文件
系统记事本本身不提供“UTF-8无BOM”保存选项界面,但可通过外部编辑器完成转换后,再以兼容方式覆盖原始工作流。
1、下载并安装Notepad++(官方免费开源版本)。
2、在Notepad++中新建文档,输入内容后点击“编码 → 转为UTF-8无BOM”。
3、保存文件,此时记事本打开该文件将正常显示,且不会因BOM引发PHP/HTML解析错误。
4、可将Notepad++设为.TXT文件默认打开程序,避免反复切换。
五、修改系统区域设置以强化UTF-8兼容基础
非Unicode程序(包括旧版记事本)的字符渲染依赖系统区域设置中的“非Unicode程序的语言”;若此项非中文环境,可能干扰UTF-8解码逻辑,间接导致BOM识别异常。
1、按Win + R,输入intl.cpl并回车,打开区域设置窗口。
2、切换至“管理”选项卡,点击“更改系统区域设置”。
3、将“当前系统区域设置”设为中文(简体,中国),并确保取消勾选“Beta版:使用Unicode UTF-8提供全球语言支持”。
4、点击确定,按提示重启计算机。










