【问题标题】:java utf-8 text file reading bug?java utf-8 文本文件读取错误?
【发布时间】:2012-05-06 00:59:33
【问题描述】:

我有一个简单的文本文件,其中填充了我的文本数据,需要保存为 utf-8,因为我有一些 unicode 符号...

我只是用记事本写了一个普通的文本文件,并用 utf-8 保存为 txt

但我似乎在前面得到了一些奇怪的东西:

这是一种奇怪的点,通常甚至无法粘贴到其他任何地方。 我也许可以尝试删除第一个符号,但我认为这不是一个真正的解决方案,此外我不确定它是否会一直出现......

这是代码部分:

FileInputStream fstream = new FileInputStream(fileName);
        // Get the object of DataInputStream
        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String values;

        //Read File Line By Line

        System.out.println("Generating queries from: " + fileName);
        String fields = br.readLine(); 
        System.out.println("The fields are: " + fields); 

有人遇到过这个问题并知道解决方案吗?

提前致谢。

【问题讨论】:

  • 对不起,我应该把它标记为红色,它就在以下行:字段是:XLanguage_code... 这是这里的 X
  • 你确定它不仅仅是一个屏幕神器?不影响代码但只是留在那里的东西?
  • fields.codePointAt(0)的值是多少?
  • 是的,我很确定这不是屏幕神器。
  • 可能应该补充一点,它不仅是记事本,今天早些时候我的记事本++正在使用 unicode 保存 txt 文件时发生在我身上......

标签: java file-io utf-8


【解决方案1】:

可能是Unicode Byte Order Mark (BOM)。一些文本编辑器(在 Windows 上)启动一个带有 BOM 的 UTF-8 文本文件来标记它是 Unicode。

如果您需要在 Java 中处理此问题,请测试您从文件中读取的第一个 Unicode 代码点是否为 0xffef,如果是则将其删除。

【讨论】:

猜你喜欢
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 2014-03-04
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多