2012-06-19 10 views
5

Pracuję nad plikiem tekstowym JSON o pojemności 1 gigabajta, który próbuję analizować przy użyciu języka Java. Jednakże parser zgłasza wyjątek, ponieważ działa na znak „n” generuje ten wyjątek:Usuwanie znaków spoza UTF-8 z dużego pliku txt

Wyjątek Nieprawidłowy UTF-8 Start bajt 0x96

Próbowałem usunąć znak za pomocą sed i perl, ale wydaje się, że nie mogą odczytać postaci, a zatem plik pozostaje niezmieniony. Chciałbym usunąć znak z całego pliku lub zastąpić go innym znakiem lub ciągiem, aby działało przetwarzanie.

+1

wierzę plik jest zakodowany w latin1, nie utf8 – Daenyth

+0

Aby dodać, użyj iso-8859-1 jako kodowania do określenia latin1 w java – jontro

Odpowiedz

5

Twój plik nie jest zakodowany w UTF-8.

Powinieneś znaleźć kodowanie i użyć tego kodowania do odczytania pliku przy użyciu InputStreamReader. A następnie zapisz go, jeśli to konieczne, w UTF-8 (używając np. OutputStreamWriter).

Jeśli nie znasz kodowania, proponuję przetestować kilka prawdopodobnych kodowań: patrz Charsets.

+0

Działa dobrze teraz. Dzięki – user1261046

Powiązane problemy