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?
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:
mit etwas wie diesem:
%Vor% und ähnlich für fstream
.
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%Tags und Links java utf-8 inputstream