有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从文本文件中读取时显示java符号“ï»”

使用与此处相同的项目和文本文件:Java.NullPointerException null (again)程序正在输出数据,但带有。要让你了解情况:

This program is a telephone directory, ignoring the first "code" block, look at the second "code" block on that link, that is the text file with the entries. The program outputs them as it should but it is giving  at the beginning of the entries read from the text file ONLY.

关于如何移除它有什么帮助吗?我正在使用带文件读取器的缓冲读取器。提前谢谢

  • 文本文件编码:UTF-8
  • 使用Java7
  • Windows 7

共 (2) 个答案

  1. # 1 楼答案

    我想你的输入文件是用UTF-8 with BOM编码的

    您可以在不使用BOM表的情况下保存输入文件,也可以用Java处理

    这里可能需要做的事情是使用带有适当编码的InputStreamReader。遗憾的是,这是不可能的。问题是,一个UTF-8编码的文件没有BOM表,所以你必须手动处理这种情况

    一个快速的破解方法是检查文件的前三个字节是否为0xEF, 0xBB, 0xBF,如果是,则忽略它们

    有关更复杂的示例,请查看UnicodeBOMInputStreamin this answer

  2. # 2 楼答案

    读入文本文件是否使用带BOM的UTF-8?看起来像是BOM的标志:“ï»” http://en.wikipedia.org/wiki/Byte_order_mark

    你在开窗户吗?记事本++应该能够转换。如果使用linux或VI(M),可以使用“:set nobomb”