Wie lese ich das in utf-8?

8

Ich bekam einen Fehler io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence

Die Lösung besteht darin, die Datei in UTF-8 zu lesen und zu schreiben.

Mein Code ist:

%Vor%

Ich lese eine URL und schreibe sie in eine Datei DirectionResponse.xml . Lesen Sie dann DirectionResponse.xml und schreiben Sie dasselbe wie * ppre_DirecionResponse.xml * zur Verarbeitung.

Wie ändere ich das, damit Lesen und Schreiben in UTF-8 erfolgt?

    
Gaurav Wadhwani 12.11.2012, 20:02
quelle

2 Antworten

23

Zuerst müssen Sie output.close() aufrufen (oder mindestens output.flush() aufrufen, bevor Sie die Datei zur Eingabe erneut öffnen. Das ist wahrscheinlich die Hauptursache für Ihre Probleme.

Dann sollten Sie FileReader oder FileWriter nicht dafür verwenden, da es immer die Plattform-Standardcodierung verwendet (die oft nicht UTF-8 ist). Von den Dokumenten für FileReader :

  

Die Konstruktoren dieser Klasse setzen voraus, dass die Standardzeichencodierung und die Standard-Bytepuffergröße geeignet sind.

Sie haben das gleiche Problem, wenn Sie FileWriter verwenden. Ersetzen Sie dies:

%Vor%

mit etwas wie diesem:

%Vor%

und ähnlich für fstream .

    
Ted Hopp 12.11.2012, 20:09
quelle
2

Lesen und Schreiben der UTF-8-Datei in Java

Ich sehe, du schreibst in utf-8, aber nicht speziell in utf-8. Befolgen Sie das Beispiel, das ich in dem Link angegeben habe.

%Vor%     
Aravind R. Yarram 12.11.2012 20:06
quelle

Tags und Links