我创建的文件使用UTF-8编码的内容(使用PHP fputcsv)。
当我在记事本++打开这个文件 - 字符是错误的(记事本+ +使用ANSI编码开始)。
从菜单>“编码为UTF-8” - - 当我设置格式一切都很好。
林令人担忧的,是记事本++能以某种方式识别编码,也许什么是错与创建我的文件fputcsv
? 第一个字节或东西吗?
我创建的文件使用UTF-8编码的内容(使用PHP fputcsv)。
当我在记事本++打开这个文件 - 字符是错误的(记事本+ +使用ANSI编码开始)。
从菜单>“编码为UTF-8” - - 当我设置格式一切都很好。
林令人担忧的,是记事本++能以某种方式识别编码,也许什么是错与创建我的文件fputcsv
? 第一个字节或东西吗?
自动地检测编码是不是可以准确地进行。 这是非常重要的编码明确指定。 它可以在某些情况下可以猜到,但即便这样也没有100%的把握。
本文档( 编码 )解释了有关记事本++的情况。 他们还指出,出现困难,特别是如果该文件尚未保存与字节顺序标记(BOM)。
鉴于您的文件显示正确,一旦你手动设置编码,我会说没有什么错,你是如何产生和保存文件。 您可以检查的唯一事情是一个BOM是否被保存,这可能会提高记事本++能够自动检测到编码的机会。
值得注意的是,虽然它可以帮助编辑器如记事本++更准确地识别编码,根据Unicode标准的文件,不建议BOM。
你必须检查记事本++图形用户界面的右下角看到正在使用的实际enconding。 该问题的原因猜测正确的编码是一个很大的问题,没有任何真正的解决办法,因此是更好地让用户决定什么是在每个单独的情况下最合适的编码它不是记事本+ +具体。
当你想体现的文本文件的编码在Java程序中,必须考虑两个thnigs:编码和字符集。 当您打开一个文本文件,你会看到在“编码”菜单中的编码。 另外看看字符集菜单点。 在“东欧”,你会发现“ISO 8859-2”,并在中欧的“Windows-1250”。 你可以当你在表中查找Java程序中设置相应的编码: https://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html例如,对于Cenntral欧洲字符集的“Windows-1250”表建议的Java编码“CP1250”。 将编码设置,你会正确地看到在程序中的字符。