Windows 11记事本无法正确显示含重音字符的文本文件问题求助
Windows 11记事本无法正确显示含重音字符的文本文件问题求助
看起来你碰到的确实是Windows 11记事本编码默认设置变化导致的问题,我来帮你梳理下原因和解决办法:
问题根源
Windows 10时代的记事本默认使用ANSI编码(对应西欧语言的Windows-1252编码,完美适配法语/英语的重音字符),但Windows 11把记事本的默认编码改成了UTF-8(无BOM)。而你之前通过VBA宏、Expression Web导出的文件,都是用ANSI编码保存的,用UTF-8编码打开这些ANSI文件,就会出现方块乱码。Notepad++会自动检测文件编码,所以能正确识别显示。
解决办法
1. 临时救急:打开文件时手动指定编码
每次打开有问题的文件时,不要直接双击打开:
- 打开记事本,点击「文件」→「打开」
- 找到目标文本文件后,先点击右下角的编码下拉框,选择「ANSI」(或者更精准的「西欧(Windows)」)
- 再点击「打开」,重音字符就能正常显示了
2. 永久解决:修改记事本默认编码
把记事本的默认编码改回和Win10一致的ANSI,以后打开旧文件就不用手动选了:
- 打开记事本,点击顶部的「设置」→「常规」
- 在「默认编码」下拉框里选择「ANSI」,保存设置即可
3. 从源头上避免:调整保存时的编码
如果想让新生成的文件在Win11默认设置下也能正常显示,可以修改生成/导出时的编码:
- VBA宏修改:原来用FileSystemObject默认是ANSI保存,你可以改用
ADODB.Stream对象来保存,指定编码为UTF-8(带BOM),示例代码大概是这样:
这样生成的文件带UTF-8 BOM,Win11记事本默认就能正确识别。Dim stream As Object Set stream = CreateObject("ADODB.Stream") stream.Charset = "UTF-8" stream.Open stream.WriteText "你的法语/英语内容" stream.SaveToFile "文件路径.txt", 2 ' 2表示覆盖现有文件 stream.Close - Expression Web 4导出:在「另存为」窗口,点击「保存」按钮旁边的编码按钮,选择「西欧(Windows)」,导出的文件编码和Win10时期一致,记事本打开不会乱码。
备注:内容来源于stack exchange,提问作者RDK45




