Heim >Java >javaLernprogramm >Wie kann ich die Zeichensatzkodierung eines Java InputStream programmgesteuert bestimmen?
Bestimmen der Zeichensatzkodierung eines Streams in Java
In einem früheren Thread hatte ein Benutzer Schwierigkeiten, eine ISO-8859-1 genau zu lesen kodierte Datei mit Java. Nun stellt sich die Frage: Wie kann die korrekte Zeichensatzcodierung eines Eingabestreams oder einer Eingabedatei programmgesteuert identifiziert werden?
Konventioneller Ansatz und seine Einschränkungen
Ein typischer Ansatz beinhaltet die Verwendung die getEncoding()-Methode eines InputStreamReader-Objekts. Wie der bereitgestellte Code zeigt, kann diese Methode jedoch möglicherweise die Codierung eines beliebigen Bytestreams nicht genau bestimmen. Es gibt lediglich die Kodierung zurück, die zuvor für den Stream eingerichtet wurde, und führt keine intelligenten Schätzungen durch.
Überlegungen zur Kodierung
Es ist wichtig, die Bestimmung der Kodierung anzuerkennen eines Bytestroms ist grundsätzlich unmöglich. Kodierungen stellen Zuordnungen zwischen Bytewerten und den entsprechenden Zeichen dar. Folglich könnte potenziell jede Kodierung die richtige sein.
XML- und HTML-Dokumente geben ihre Kodierung häufig explizit an, aber allgemeine Byteströme stellen solche Informationen nicht bereit.
Mögliche Problemumgehungen
Wenn die Bestimmung der genauen Kodierung entscheidend ist, beachten Sie Folgendes Problemumgehungen:
Das obige ist der detaillierte Inhalt vonWie kann ich die Zeichensatzkodierung eines Java InputStream programmgesteuert bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!