在 Notepad++ 中保存后文件编码未保留

在 Notepad++ 中保存后文件编码未保留

我正在使用 Notepad++ 编辑我的 PHP 脚本。

然而,我发现一个奇怪的问题:当将编码从 更改为ANSIUTF-8 (without BOM)保存、关闭、重新加载 – 然后检查编码:仍然是ANSI

有什么想法吗?过去它对我来说总是有效的。

答案1

这是预期的行为。

可能会发生这样的情况:文件以某种编码保存,但在 Notepad++ 中重新打开时检测到使用另一种编码。这是技术限制,因为有时即使使用不同的编码,生成的文件也不会有差异。如果文件保存时没有特殊的 BOM(字节顺序标记)来指示所用的编码,这种情况最为明显。

ANSI 和 UTF-8 共享前 128 个字符 (ASCII),如果您只使用这 128 个字符,则很难区分它们。纯文本文件没有指示编码的元数据,因此 Notepad++(和其他编辑器)所能做的就是查看文件中的字符/数据并进行猜测。

  • 如果文件有 BOM,NP++ 会检测到它并了解编码。
  • 如果文件是 HTML 或 XML,则从文件的第一行读取编码。
  • 否则,NP++ 会在 UCS-2LE、UCS2-BE 和 ANSI 之间进行猜测。您无法区分使用 UTF-8 编码且无 BOM 的文件和使用 ANSI 编码且包含大量高 ASCII 字符的文件。

http://sourceforge.net/projects/notepad-plus/forums/forum/331754/topic/3822723


理论上,PRacicot 的回答应以 UTF-8 格式打开所有 ANSI/UTF-8 文件(无 BOM)。在对类似 Stack Overflow 问题的回答。如果这对您不起作用,我不确定该怎么办。ANSI as UTF-8对我来说,编码显示在状态栏中。

答案2

您可能想要在 notepad++ 偏好设置中更改此设置。

进入菜单设置 -> 首选项 -> 新建文档/默认目录。在 suck 部分编码中,选中 UTF-8 without BOM 并选中应用于打开的 ANSI 文件。

通过选中“应用于打开的 ANSI 文件”,此首选项也将应用于 notepad++ 中当前打开的文档。

由于我还没有足够的积分来发布图片,因此这里是我上传图片的帖子链接:http://postimage.org/image/4qza0bkv9/

祝你好运,编程愉快。

答案3

您必须Convert to ...更改Encode to ...选项。
您可能还想在设置中更改此选项,这样所有新文件都将使用您选择的编码创建。

图像

答案4

我可以将其保存为 ANSI 格式,并且运行良好,但 Notepad++ 的新版本在此处添加了一个可点击的选择,以将 CRLF 更改为 CR 和 LF,以适应正确的系统这是 Notepad++ 最新版本 2023 年 11 月

相关内容