0

UTF8 でエンコードされたファイルを解析するときに問題が発生します。

エンコーディングを除いて完全に同一の 2 つのファイルがあります。(ファイルをコピーしてUTF8で保存しただけなので、内容は同じです)。1 つは ANSI を使用してエンコードされ、もう 1 つは UTF8 を使用してエンコードされます。ANSI でエンコードされたファイルは正常に解析されますが、他のファイルは BeanReader.read() メソッドを呼び出すときに BeanIO が UnidentifiedRecordException をスローする原因になります。

org.beanio.UnidentifiedRecordException: Unidentified record at line 1

このコードを使用してエンコーディングを明示的に UTF8 に設定することで、これを解決しようとしました。

public static BeanReader getBeanReader(File file, StreamBuilder builder) {
     StreamFactory factory = StreamFactory.newInstance();
     factory.define(builder);
     InputStream iStream;
     try {
         iStream = new FileInputStream(file);
     } catch (FileNotFoundException e) {
         throw new CustomException("Could not create BeanReader, file not found", e);
     }
     Reader reader = new InputStreamReader(iStream, StandardCharsets.UTF_8);
     return factory.createReader("reader", reader);
}

これは問題を解決しません。

このエラーの原因は何ですか?

4

1 に答える 1

0

最初の行が間違っていると主張されているため、BOM (ファイルの先頭にある悪名高いゼロ幅スペース) なしで UTF-8 を保存しましたか?

于 2015-08-03T08:35:10.047 に答える