18 Stimmen

Auto-Detect Character Encoding in Java

Scheint ein ziemlich häufiges Problem zu sein, aber ich konnte bisher keine Lösung finden; vielleicht weil es so viele Variationen gibt. Hier ist es jedoch. Ich versuche, einige kommaseparierte Dateien zu lesen (manchmal können die Trennzeichen etwas einzigartiger sein als Kommas, aber Kommas reichen vorerst aus).

Die Dateien sollen branchenweit standardisiert sein, aber in letzter Zeit haben wir viele verschiedene Arten von Zeichensatzdateien erhalten. Ich möchte in der Lage sein, einen BufferedReader so einzurichten, dass er dies ausgleichen kann.

Was ist eine ziemlich standardisierte Methode, dies zu tun und festzustellen, ob es erfolgreich war oder nicht?

Meine ersten Gedanken zu diesem Ansatz sind, durch Zeichensätze von einfach zu komplex zu loopen, bis ich die Datei ohne Ausnahme lesen kann. Nicht gerade ideal...

Vielen Dank für Ihre Aufmerksamkeit.

11voto

Aravind Yarram Punkte 76365

Das universalchardet von Mozilla soll der effizienteste Detektor sein. juniversalchardet ist die Java-Portierung davon. Es gibt noch einen weiteren Port. Lesen Sie dazu dieses SO für weitere Informationen Algorithmus zur Erkennung von Zeichencodierung

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X