可能会发生文件以某种编码保存,但在 Notepad++ 中重新打开它时,会检测到另一种编码。这是一个技术限制,因为有时即使使用不同的编码,生成的文件也不会有所不同。如果保存文件时没有使用指示所用编码的特殊 BOM(字节顺序标记),则这一点最为明显。
ANSI 和 UTF-8 共享它们的前 128 个字符 (ASCII),如果您只使用这些字符,则无法区分它们。对于纯文本文件,没有指示编码的元数据,因此 Notepad++(和其他编辑器)所能做的就是查看文件中的字符/数据并进行猜测。
- 如果文件有 BOM,NP++ 会检测到它并知道编码。
- 如果文件是 HTML 或 XML,则从文件的第一行读取编码。
- 否则,NP++ 会在 UCS-2LE、UCS2-BE 和 ANSI 之间进行猜测。您无法区分没有 BOM 的 UTF-8 编码文件和具有大量高位 ASCII 字符的 ANSI 文件。
http://sourceforge.net/projects/notepad-plus/forums/forum/331754/topic/3822723
理论上,PRacicot 的答案应该将所有 ANSI/UTF-8 文件(没有 BOM)作为 UTF-8 打开。在对类似堆栈溢出问题的回答中也推荐这样做。如果这对您不起作用,我不确定可以做什么。ANSI as UTF-8对我来说,编码在状态栏中指示。