5

Javaを使用して解析しようとしている1ギガバイトのJSONテキストファイルに取り組んでいます。ただし、この例外を生成する文字 'ñ' に遭遇するため、パーサーは例外をスローします。

例外 無効な UTF-8 開始バイト 0x96

sed と perl を使用して文字を削除しようとしましたが、文字を読み取れないようで、ファイルは変更されていません。解析が機能するように、ファイル全体から文字を削除するか、他の文字または文字列に置き換えたいと思います。

4

2 に答える 2

5

ファイルは UTF-8 でエンコードされていません。

エンコーディングを見つけて、このエンコーディングを使用して、を使用してファイルを読み取る必要がありますInputStreamReader。そして、必要に応じて UTF-8 で保存します (たとえば an を使用OutputStreamWriter)。

エンコーディングがわからない場合は、いくつかの可能性のあるエンコーディングでテストすることをお勧めします: Charsetsを参照してください。

于 2012-06-19T16:30:09.283 に答える
2

はい、UTF-8ではない可能性があります。エンコードが何であるかを確認する方法については、こちらを参照してください。Java:ストリームの正しい文字セットエンコードを判別する方法

最高の答えはInputStreamReader#getEncoding()

于 2012-06-19T16:31:31.807 に答える