【问题标题】:Notepad++ can recognize encoding?Notepad++可以识别编码吗?
【发布时间】:2012-12-24 04:38:03
【问题描述】:

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

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

当我从菜单设置 Format->"Encode in UTF-8" 时 - 一切都很好。

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

【问题讨论】:

    标签: encoding text-files notepad++


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      自动检测编码不是可以准确完成的。明确指定编码非常重要。在某些情况下可以猜到,但即便如此也不是 100% 确定的。

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

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

      值得注意的是,虽然它可以帮助 Notepad++ 等编辑器更准确地识别编码,但根据 Unicode 标准文档,不推荐使用 BOM。

      【讨论】:

      • 有没有办法控制PHP中的字节顺序标记?
      • 恐怕我不是 PHP 人,但我确实发现这可能会有所帮助:php.net/manual/en/function.utf8-encode.php#68211。请记住,BOM 不是必需的(实际上在 Unicode 标准文档中不推荐)
      • 谢谢@chamila_c。这就是我想知道的。
      • @krlzlx:将链接更改为 Internet 存档链接,以便再次阅读该页面!
      【解决方案3】:

      当你想在Java程序中体现文本文件的编码时,你必须考虑两个方面:编码和字符集。打开文本文件时,您会在“编码”菜单下看到编码。另外查看字符集菜单点。在“东欧”下,您将找到“ISO 8859-2”,在中欧“Windows-1250”下。可以在Java程序中设置相应的编码 当您在表格中查找时: https://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html 例如,对于中欧字符集“Windows-1250”,该表建议使用 Java 编码“Cp1250”。设置好编码,就可以正常看到程序中的字符了。

      【讨论】:

      • 你在回答什么问题?实际问题与java无关。
      • 我回答有关Notepad++中字符编码的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多