Frage

Ich bin über FTP herunterzuladen einige Dateien mit chinesischen Namen (BIG5 codierte) und Filezilla zeigt diese Dateinamen als Müll (wie FTP jeden andere Codierung nicht verarbeiten kann als ASCII und UTF-8, als mindestens den Standard kompatibel ist).

ein Dateiname mit unlesbaren Zeichen gegeben, ist es mir möglich, die Codierung zu reparieren und einen richtiger Dateiname String bekommt da ich bereits die Quellencodierung wissen? Wird der FTP-Client BIG5 als UTF-8 Insert falsch interpretiert Bytes, die make Umwandlung zurück zu BIG5 schwierig?

Meine vorgeschlagenen Schritte (in Java): 1. Die verstümmelte Dateinamen mit dem Datei-Objekt erhalten. 2. GetBytes mit UTF-8. 3. eine neue Zeichenfolge dieser Bytes in BIG5 erstellen verwenden. 4. Schreiben Sie das entschlüsselte Dateinamen zurück in die Datei.

Wird die obige Methode?

War es hilfreich?

Lösung

Nicht jede Folge von Bytes ist eine gültige ASCII oder UTF-8-String, so dass es sehr wahrscheinlich ist, dass umgewandelt einige der Bytes verworfen worden sein, auf die Ersetzungszeichen oder auf andere Weise irreversibel verstümmelt. So ist es aussieht wird es nicht möglich sein, die ursprünglichen Dateinamen abzurufen, wenn sie von FileZilla modifiziert wurden, korrekt gebildet UTF-8 oder ASCII werden.

Vielleicht haben Sie das Glück, in der Lage sein, einen bestimmten Prozentsatz der ursprünglichen Figuren zu kommen, wo sie gerade passiert ist sowohl gültig BIG5 und gültige UTF-8 sein, aber ich bezweifle, Sie in der Lage sein werden, die gesamten Dateinamen zu erholen.

Sie können einige Beispiele für Ihre verstümmelte Dateinamen schreiben (als Ausgang Bytes in Hex-codiert), um eine definitive Antwort zu bekommen. So können wir genau sehen, was der Schaden ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top