Notepad ++可以识别编码吗?

时间:2013-01-09 21:36:37

标签: encoding text-files notepad++

我创建了带有UTF-8编码内容的文件(使用PHP fputcsv)。

当我在Notepad ++中打开此文件时 - 字符错误(Notepad ++以ANSI编码开头)。

当我从菜单中设置Format->“在UTF-8中编码”时 - 一切都很好。

我很担心,Notepad ++可以以某种方式识别编码,也许我的文件用fputcsv创建了一些问题?第一个字节还是什么?

3 个答案:

答案 0 :(得分:14)

自动检测编码不是可以准确完成的事情。显式指定编码非常重要。在某些情况下可以猜到,但即使这样,也不是100%确定。

本文档(Encoding)解释了与Notepad ++相关的情况。 他们还指出,如果文件尚未使用字节顺序标记(BOM)保存,则会出现困难。

假设您手动设置编码后文件显示正确,我会说您生成和保存文件的方式没有任何问题。您唯一可以检查的是是否正在保存BOM,这可能会提高Notepad ++能够自动检测编码的机会。

值得注意的是,尽管可能有助于像Notepad ++这样的编辑者更准确地识别编码,但根据Unicode标准文档,不建议使用BOM。

答案 1 :(得分:11)

您必须检查Notepad ++ GUI的右下角以查看正在使用的实际enconding。问题不在于Notepad ++特定,因为在没有任何实际解决方案的情况下猜测正确的编码是一个大问题所以最好让用户在每种情况下决定什么是最合适的编码。

答案 2 :(得分:0)

如果要在Java程序中反映文本文件的编码,则必须考虑两个问题:编码和字符集。当您打开文本文件时,您会在“编码”菜单下看到编码。另外看一下字符集菜单点。在“东欧”下,您将找到“ISO 8859-2”,并在中欧“Windows-1250”下。您可以在Java程序中设置相应的编码 当你抬头看桌子时: https://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html 例如,对于Cenntral European字符集“Windows-1250”,该表建议使用Java编码“Cp1250”。设置编码,您将在程序中正确看到字符。