2012-06-19 3 views
5

Sto lavorando a un file di testo JSON da 1 Gigabyte che sto cercando di analizzare utilizzando Java. Tuttavia, il parser genera un'eccezione perché si corre in 'n' carattere generare questa eccezione:Rimozione di caratteri non UTF-8 da file txt di grandi dimensioni

Eccezione non valido UTF-8 Inizia byte 0x96

Ho cercato di rimuovere il carattere utilizzando sed e perl, ma sembra che non possano leggere il carattere e quindi il file rimane invariato. Mi piacerebbe rimuovere il carattere dall'intero file o sostituirlo con qualsiasi altro carattere o stringa in modo che l'analisi funzioni.

+1

Credo che il file è codificato in latin1, non utf8 – Daenyth

+0

Per aggiungere, utilizzare iso-8859-1 come codifica per specificare latin1 in java – jontro

risposta

5

Il file non è codificato in UTF-8.

Si dovrebbe trovare la codifica e utilizzare questa codifica per leggere il file utilizzando InputStreamReader. E quindi salvarlo se necessario in UTF-8 (usando per esempio un OutputStreamWriter).

Se non si conosce la codifica, suggerisco di testare con alcune codifiche probabili: vedere Charsets.

+0

Funziona bene ora. Grazie – user1261046