2012-06-19 54 views
5

Tôi đang làm việc trên tệp văn bản JSON 1 Gigabyte mà tôi đang cố gắng phân tích bằng cách sử dụng Java. Tuy nhiên, phân tích cú pháp ném một ngoại lệ vì nó chạy vào nhân vật 'n' tạo ra ngoại lệ này:Xóa các ký tự không phải UTF-8 khỏi tệp txt lớn

ngoại lệ không hợp lệ UTF-8 bắt đầu byte 0x96

tôi đã cố gắng để loại bỏ các nhân vật sử dụng sed và perl, nhưng có vẻ như họ không thể đọc được ký tự và do đó tập tin vẫn không thay đổi. Tôi muốn xóa ký tự khỏi toàn bộ tệp hoặc thay thế nó bằng bất kỳ ký tự hoặc chuỗi nào khác để phân tích cú pháp hoạt động.

+1

Tôi tin rằng tập tin của bạn là mã hóa trong latin1, không phải utf8 – Daenyth

+0

Để thêm, sử dụng mã hóa iso-8859-1 để chỉ định latin1 trong java – jontro

Trả lời

5

Tệp của bạn không được mã hóa bằng UTF-8.

Bạn nên tìm mã hóa và sử dụng mã hóa này để đọc Tệp bằng cách sử dụng InputStreamReader. Và sau đó lưu nó nếu cần thiết trong UTF-8 (sử dụng cho exemple một OutputStreamWriter).

Nếu bạn không biết mã hóa, tôi khuyên bạn nên kiểm tra bằng một số mã hóa có thể xảy ra: xem Charsets.

+0

Hoạt động tốt ngay bây giờ. Cảm ơn – user1261046

Các vấn đề liên quan