Forum

java fileinputstrea...
 
Notifications
Clear all
java fileinputstream encoding iso-8859-1 - Wie konvertiere ich zwischen ISO-8859-1 und UTF-8 in Java?
java fileinputstream encoding iso-8859-1 - Wie konvertiere ich zwischen ISO-8859-1 und UTF-8 in Java?
Grupo: Registrado
Registrado: 2021-07-03
New Member

Acerca de Mí

java fileinputstream encoding iso-8859-1
 
KLICKE HIER
 

Wie konvertiere ich zwischen ISO-8859-1 und UTF-8 in Java?
Java: So ermitteln Sie die korrekte Zeichensatzcodierung eines Streams

 
KLICKE HIER
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Ich erhalte eine Zeichenfolge aus dem Web und speichere sie im RMS J2ME , aber ich mochte die Sonderzeichen beibehalten und die Zeichenfolge aus dem RMS abrufen, jedoch mit der ISOCodierung. Wie mache ich das? Im Allgemeinen konnen Sie dies nicht tun. UTF-8 kann jeden Unicode-Codepunkt codieren. ISO kann nur einen winzigen Bruchteil davon verarbeiten. Das Transcodieren von ISO nach UTF-8 ist also kein Problem. Wenn Sie von UTF-8 zu ISO zuruckgehen, werden "Ersatzzeichen" in Ihrem Text angezeigt, wenn nicht unterstutzte Zeichen gefunden werden. Sie konnen mehr Kontrolle ausuben, indem Sie die untergeordneten Charset APIs verwenden. Sie konnen beispielsweise eine Ausnahme auslosen, wenn ein nicht codierbares Zeichen gefunden wird, oder ein anderes Zeichen als Ersatztext verwenden. Wenn Sie ein "defekt" haben String , haben Sie etwas falsch gemacht. Die Konvertierung eines String in ein String anderes in einer anderen Codierung ist definitiv nicht der richtige Weg! Sie konnen a String in a konvertieren byte[] und umgekehrt bei gegebener Codierung. In Java String sind AFAIK mit codiert, UTF aber das ist ein Implementierungsdetail. Angenommen, Sie haben eine InputStream , konnen Sie eine einlesen byte[] und diese dann in eine String Verwendung umwandeln. Regex kann auch gut sein und effektiv verwendet werden Ersetzt alle UTFZeichen, die nicht ISO durch Leerzeichen abgedeckt sind :. Die Apache Commons IO Charsets-Klasse kann nutzlich sein:. Daruber hinaus eine Methode, die eine ISOZeichenfolge in eine UTFZeichenfolge konvertiert, ohne den Konstruktor der Klasse String zu verwenden. Diese Methode basiert auf der Verknupfung von utf-8 mit iso dieser Website. Codierung von utf-8 in iso We use cookies and other tracking technologies to improve your browsing experience on our website, to show you personalized content and targeted ads, to analyze our website traffic, and to understand where our visitors are coming from. By continuing, you consent to our use of cookies and other tracking technologies and affirm you're at least 16 years old or have consent from a parent or guardian. You can read details in our Cookie policy and Privacy policy. Programmierung Tags Account Anmeldung Registrieren. Wie konvertiere ich zwischen ISO und UTF-8 in Java? Mogliches Duplikat der Codierungskonvertierung in Java. Weitere Informationen zur Zeichencodierung und warum es zu Recht nicht sinnvoll ist, von UTF-8 auf ISO oder ASCII oder ANSI umzusteigen. Hier ist eine gute Zusammenfassung von diesem Link: There are hundreds of traditional encodings which can only store some code points correctly and change all the other code points into question marks. Some popular encodings of English text are Windows the Windows 9x standard for Western European languages and ISO, aka Latin-1 also useful for any Western European language. But try to store Russian or Hebrew letters [or special chars] in these encodings and you get a bunch of question marks. UTF 7, 8, 16, and 32 all have the nice property of being able to store any code point correctly. Es konnte erwahnenswert sein, dass Windows Windows Latin 1 ISO offizielles Latin 1 erweitert, indem einige der "Unicode-Steuerzeichen" 0x80 - 0xbf eingegeben werden. Sogar Browser unter Mac und Linux respektieren dies. Verwenden Sie daher an einigen Stellen stattdessen Windows Wenn sich die Zeichenfolge in einer Codierung befindet und wir mit der anderen Bytes erhalten, was ist dann unter der Haube los? Sie konnen sie ausprobieren und die Ergebnisse in Ihrer IDE anzeigen. Wenn Sie dieser URL folgen , wird die Methodendefinition angezeigt. Ich kenne die genauen Details des Prozesses nicht. Gibt es ein Tool von Drittanbietern, das alle Dateien in einem Repository in UTF-8 konvertieren kann? Der einfachste Weg, eine ISOZeichenfolge in eine UTFZeichenfolge zu konvertieren. We use cookies. OK, enter website! Durch die Nutzung unserer Website bestatigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben. Licensed under cc by-sa 3.
Mit Bezug auf den folgenden Thread: Java-App: ISOcodierte Datei kann nicht korrekt gelesen werden. Sie konnen die Codierung eines beliebigen Bytestreams nicht bestimmen. Dies ist die Natur der Kodierungen. Eine Codierung bedeutet eine Zuordnung zwischen einem Bytewert und seiner Darstellung. Jede Kodierung "konnte" also die richtige sein. Die Methode getEncoding gibt die Codierung zuruck, die fur den Stream eingerichtet wurde lesen Sie JavaDoc. Die Kodierung wird fur Sie nicht erraten. Einige Streams geben an, mit welcher Codierung sie erstellt wurden: XML, HTML. Aber kein beliebiger Bytestrom. Auf jeden Fall konnten Sie versuchen, eine Kodierung selbst zu erraten, wenn Sie mussen. Jede Sprache hat eine gemeinsame Frequenz fur jedes Zeichen. In einem ISOStream gibt es normalerweise keine 0xZeichen. Aber ein UTFStream hat viele davon. Oder: Sie konnten den Benutzer fragen. Ich habe bereits Anwendungen gesehen, die Ihnen einen Ausschnitt der Datei in verschiedenen Codierungen prasentieren und Sie bitten, die "richtige" auszuwahlen. Sie konnen die Datei auf jeden Fall fur einen bestimmten Zeichensatz validieren, indem Sie sie mit a dekodieren CharsetDecoder und auf Fehler bei "fehlerhafter Eingabe" oder "nicht zuordnbaren Zeichen" achten. Dies sagt Ihnen naturlich nur, wenn ein Zeichensatz falsch ist. Dazu benotigen Sie eine Vergleichsbasis, um die dekodierten Ergebnisse auszuwerten. Wissen Sie beispielsweise im Voraus, ob die Zeichen auf eine Teilmenge beschrankt sind oder ob der Text einem strengen Format entspricht? Das Fazit ist, dass die Zeichensatzerkennung ohne Garantie ein Ratselraten ist. Es ist unmoglich, den von den oben genannten Bibliotheken erkannten Zeichensatz zu zertifizieren. Es ist jedoch moglich, sie nacheinander zu fragen und die zuruckgegebene Antwort zu bewerten. Jeder Antwort kann ein Punkt zugewiesen werden. Je mehr Punkte eine Antwort hat, desto mehr Vertrauen hat der erkannte Zeichensatz. Dies ist eine einfache Bewertungsmethode. Sie konnen andere ausarbeiten. Hier ist ein vollstandiger Ausschnitt, der die in den vorherigen Zeilen beschriebene Strategie implementiert. Verbesserungen: Die guessEncoding Methode liest den Eingabestream vollstandig. Alle diese Bibliotheken wurden den gesamten Eingabestream lesen. Es ist moglich, das anfangliche Laden von Daten auf einige Bytes zu beschranken und die Zeichensatzerkennung nur fur diese wenigen Bytes durchzufuhren. Die obigen Bibliotheken sind einfache Stucklistendetektoren, die naturlich nur funktionieren, wenn sich am Anfang der Datei eine Stuckliste befindet. Daher sollten Sie fur jedes Problem die vorhandenen Bibliotheken testen und die beste auswahlen, die den Einschrankungen Ihres Problems entspricht. Oft ist jedoch keine davon geeignet. In diesen Fallen konnen Sie Ihren eigenen Codierungsdetektor schreiben! Wie ich geschrieben habe Ich habe ein Meta-Java-Tool zum Erkennen der Zeichensatzcodierung von HTML-Webseiten mit IBM ICU4j und Mozilla JCharDet als integrierten Komponenten geschrieben. Hier finden Sie mein Tool. Bitte lesen Sie vor allem den Abschnitt README. In meinem Artikel finden Sie auch einige grundlegende Konzepte fur dieses Problem und in seinen Referenzen. Wenn Sie die Kodierung Ihrer Daten nicht kennen, ist es nicht so einfach zu bestimmen, aber Sie konnten versuchen, eine Bibliothek zu verwenden, um sie zu erraten. Auch gibt es eine ahnliche Frage. Bei Unicode-Dateien kann man dies jedoch im Allgemeinen anhand der ersten paar Bytes der Datei erkennen. UTF und UTFDateien enthalten ganz am Anfang der Datei ein Byte Order Mark BOM. Die Stuckliste ist ein nicht unterbrechender Raum mit einer Breite von Null. Leider erkennt Java dies aus historischen Grunden nicht automatisch. Programme wie Notepad uberprufen die Stuckliste und verwenden die entsprechende Codierung. Mit Unix oder Cygwin konnen Sie die Stuckliste mit dem Befehl file uberprufen. Fur Java empfehle ich Ihnen, diesen Code zu uberprufen, der die gangigen Dateiformate erkennt und die richtige Codierung auswahlt: So lesen Sie eine Datei und geben automatisch die richtige Codierung an. Eine Alternative zu TikaEncodingDetector ist die Verwendung von Tika AutoDetectReader. Bei diesem Ansatz werden die Codierungen einzeln ausprobiert, bis eine funktioniert oder wir keine mehr haben. Konnen Sie den entsprechenden Zeichensatz im Konstruktor auswahlen :. We use cookies and other tracking technologies to improve your browsing experience on our website, to show you personalized content and targeted ads, to analyze our website traffic, and to understand where our visitors are coming from. By continuing, you consent to our use of cookies and other tracking technologies and affirm you're at least 16 years old or have consent from a parent or guardian. You can read details in our Cookie policy and Privacy policy. Programmierung Tags Account Anmeldung Registrieren. Java: So ermitteln Sie die korrekte Zeichensatzcodierung eines Streams Eduard hat Recht: "Sie konnen die Codierung eines beliebigen Bytestroms nicht bestimmen. Aber am Ende sind sie immer noch Vermutungen. In Ihrem Fall ist dies die Standardcodierung. Ich fand, dass dies genauer war: jchardet. Dieser juniversalchardet funktioniert nicht. Es erkennt keine osteuropaischen Fenster Ich habe versucht, das folgende Code-Snippet zur Erkennung in der Datei von " cl. Lange ; ud. Dies beantwortet die Frage nicht wirklich. Die Operation sollte wahrscheinlich docs. Hamidam es ist ein Gluck, dass es Ihnen die richtigen Charaktere zeigt. Eduard: "Also jede Kodierung" konnte "die richtige sein". Viele Textcodierungen haben mehrere ungultige Muster. Dies ist ein Flag, dass der Text wahrscheinlich nicht so codiert ist. Ein Satz auf ISO-Codierung und einer auf utf8 - beide werden als utf8 erkannt! Also habe ich versucht, eine Datei irgendwo auf meiner Festplatte Windows zu sichern - diese wurde korrekt erkannt "Windows". EDIT: Ok, ich sollte cm. Also muss ich entscheiden, welches Vertrauen gut genug ist - aber das ist absolut in Ordnung fur dieses Unterfangen Zeichensatzerkennung. Direkter Link zum Beispielcode: userguide. Hinweis : TikaEncodingDetector 1. Leider funktionieren beide Bibliotheken nicht. In einem Fall wird eine UTFDatei mit deutschem Umlaute als ISO und US-ASCII identifiziert. Brain: Hat Ihre getestete Datei tatsachlich ein UTFFormat und enthalt sie eine Stuckliste en. BennyNeugebauer Die Datei ist eine UTF-8 ohne Stuckliste. Welche Bibliothek soll ich benutzen? Wie man erkennt, wer das Recht erkannt hat Zeichensatz oder so nah wie moglich? Wie kann ich die zuruckgegebene Antwort bewerten? Gibt es einen Beispielcode? Nur zur Spitze, aber es gibt kein "oben" auf dieser Site - geben Sie die Bibliotheken an, auf die Sie sich beziehen. In einigen Fallen kann die erratene oder erkannte Codierung falsch sein, aber gleichzeitig wahr! Wie bei Windows und ISO Siehe den letzten Absatz unter 5. Der Link zur Projektwebsite "GuessEncoding" lautet: xircles. Ich hoffe das funktioniert bei dir. IMO, diese Antwort ist perfekt. Wenn Sie ICU4j verwenden mochten, versuchen Sie stattdessen Folgendes : stackoverflow. Nicht alle UTF oder UTFDateien haben eine Stuckliste, da dies nicht erforderlich ist, und von UTFStucklisten wird abgeraten. Tike AutoDetectReader verwendet EncodingDetector, der mit ServiceLoader geladen ist. Welche EncodingDetector-Implementierungen verwenden Sie? Aber ISO unter vielen anderen, die Sie nicht aufgelistet haben wird immer erfolgreich sein. Und dies ist naturlich nur eine Vermutung, die die verlorenen Metadaten, die fur die Kommunikation mit Textdateien wesentlich sind, nicht wiederherstellen kann. Hallo TomBlodget, schlagen Sie vor, dass die Codierungsreihenfolge unterschiedlich sein sollte? Ich sage, dass viele "arbeiten" werden, aber nur einer "richtig" ist. Und Sie mussen nicht auf ISO testen, da dies immer "funktioniert". Hier ging es darum zu sehen, ob der Zeichensatz programmgesteuert bestimmt werden kann. Nein, es wird es nicht fur dich erraten. Sie mussen es liefern. Moglicherweise gibt es eine heuristische Methode, wie in einigen der Antworten hier vorgeschlagen. We use cookies. OK, enter website! Durch die Nutzung unserer Website bestatigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben. Licensed under cc by-sa 3.
Zu vielen Zeichen gibt es mehrere Moglichkeiten zur Kodierung in UTF HTML und XML unterstutzen Unicode mit Zeichencodes, die unabhangig vom eingestellten Zeichensatz das Unicode-Zeichen darstellen. Laden Sie beide Dateien in einen Webbrowser: In der HTML-Datei funktionieren unter Windows im Mozilla Firefox 3. In XML gibt es nur funf Entitaten:. Diese Tastenkombination kann auch benutzt werden, um den Code des vor dem Cursor stehenden Zeichens anzuzeigen. Dies kann allerdings in einigen Anwendungen zu Problemen fuhren. In einigen Editoren konnen Sie die BOM-Behandlung konfigurieren, siehe zum Beispiel in UltraEdit. Falls Sie Textdateien im UTF-Format weiter per Java verarbeiten wollen, mussen Sie eventuell in der ersten Zeile das erste Zeichen entfernen, falls dieses eine BOM ist, zum Beispiel so:. Um einen Textstring fur eine maximale Lange in Bytes zu begrenzen oder aufzuteilen , muss die maximal mogliche Zeichenanzahl bis zu dieser Byte-Grenze ermittelt werden. Dabei muss beachtet werden, dass die Grenze nicht mitten in einem UTFDrei-Byte-Code verlaufen darf, sondern nur zwischen ganzen Zeichen. Um die korrekte Ausgabe zu erhalten, mussen Sie die Codepage umschalten. Leider gibt es in Java keinen direkten Weg, um die Codepage des Kommandozeilenfensters zu erfragen. Deshalb muss die korrekte Codepage entweder geraten werden im unten gezeigten ConsoleEncoding -Programm uber System. Sie konnen die System-Property " file. Besser ist normalerweise, wenn nur die Codepage der Textausgabe im Kommandozeilenfenster umgeschaltet wird. Hierzu gibt es auch mehrere Moglichkeiten. Bei der ersten Moglichkeit wird ein PrintWriter mit der gewunschten Codepage erzeugt, uber den die Ausgabe erfolgt:. Dann wird bei allen folgenden Ausgaben mit System. Bemerkung zu "Eclipse unter Windows": In Eclipse hat das Konsolenfenster nicht die Codepage CP, sondern die Standard-Codepage wie " file. Um unter Windows in Eclipse korrekte Ausgaben zu erzielen, geben Sie unter 'Run' 'Run Configurations Bemerkung zum "Windows-Kommandofenster": Sie konnen die Codepage des Kommandozeilenfensters normalerweise mit CHCP umschalten auf eine andere Codepage. Da sich Windows diese Schriftarteneinstellung merkt, empfiehlt es sich, eine Batchdatei zu erstellen, uber die Sie das Kommandozeilenfenster mit der anderen Codepage starten, dann merkt sich Windows diese Schriftart fur genau die mit dieser Batchdatei gestarteten Kommandozeilenfenster. Die Batchdatei kann beispielsweise fur die WindowsCodepage folgenden Inhalt haben: cmd. Falls Sie Textdateien mit unbekanntem oder unterschiedlichem Encoding verarbeiten wollen, hilft vielleicht folgende Hilfsmethode EncodingGuess. Aber beachten Sie bitte, dass das Encoding selbst bei westeuropaischen Texten nicht immer zuverlassig bestimmt werden kann und dann nur geraten werden kann. Dies ist kein Widerspruch, da US-ASCII eine Teilmenge von UTF-8 ist. Um Textdateien in verschiedenen Encodings zu speichern, benotigen Sie einen Editor, der dies unterstutzt. UltraEdit 17 bietet noch weitere Encodings im Speicherdialog an. Insbesondere konnen Sie auch frei wahlen, ob die UTF-Formate mit oder ohne BOM gespeichert werden sollen. UltraEdit 17 hat noch einen weiteren entscheidenden Vorteil: Anders als bei vielen anderen Editoren werden im HEX-Modus auch bei UTF-8 die tatsachlich in der Datei gespeicherten Bytes angezeigt. In Encoding. Fuhren Sie den JUnit-Test entweder in Eclipse aus, oder downloaden Sie junit JUnitCore EncodingGuessTest. Windows-Standardzeichensatz fur westeuropaische Lander 8 Bit. Cp enthalt alle Zeichen aus ISO und ISO , allerdings teilweise mit anderer Kodierung. Haufig in HTML-Seiten verwendeter 8-Bit-Zeichensatz, inkl. Die am weitesten verbreitete Kodierung fur Unicode-Zeichen. Zeichen werden in verschiedener Lange von 1 bis 4 Bytes kodiert. UTF manchmal auch mit Unicode gemeint. Wird in einigen Betriebssystemen Windows, OS X und Programmiersprachen Java,. NET fur die interne Zeichendarstellung verwendet. Zeichen werden entweder in 2 oder in 4 Bytes kodiert. Siehe auch Suchseiten isthisthingon-unicode und fileformat-unicode. EBCDIC CHCP ermoglicht auch die Umschaltung auf eine andere Codepage z. Infos zum Text-Encoding in Java: Converting Text , Lexical Structure und Supported Encodings. Beispiele fur Java-Klassen, bei denen Text-Encoding eine Rolle spielt: Charset , CharsetEncoder , String , String. Java verwendet intern UTF Als JVM-Kommandozeilenparameter beispielsweise: -Duser. Die erste Zeile XML Processing Instruction der pom. Die Defaulteinstellung ist unter Windows Cp und unter Linux UTF-8, weshalb es leicht zu Problemen kommen kann. Falls Programmierer mit verschiedenen Betriebssystemen arbeiten, sollte als "reduzierter Kompromiss" ISO eingestellt werden. Globale Einstellung: 'Window' 'Preferences' 'General' 'Workspace': "Text file encoding": Projektspezifische Einstellung: Im Project Explorer mit rechter Maustaste auf Projekt, 'Properties' 'Resource': "Text file encoding". Geben Sie das gewunschte Encoding vor, beispielsweise in der mysql. Sehen Sie sich an: Probleme mit UTF-8 unter Oracle. Haufig EBCDIC mit Cp Siehe auch: Select CCSID from SysColumns; DB2CODEPAGE. Java Servlet. Java Servlet, beispielsweise: HttpServletResponse. E-Mail-Versand mit Apache Commons Email: MultiPartEmail. Oracle WebLogic. In der weblogic. Siehe auch: weblogic. Apache HTTP Server. Konfigurationsdatei httpd. Es gibt naturlich noch viele weitere Moglichkeiten fur Encoding-Fehlinterpretationen, beispielsweise SQL-Skripte, JMS-Messagetexte, in der URL enthaltene HTTP-GET- und REST-Parameter,

Ubicación

Zona Horaria

Europe/Malta

Ocupación

java fileinputstream encoding iso-8859-1

Firma

Java: So ermitteln Sie die korrekte Zeichensatzcodierung eines Streams

Redes Sociales
Actividad de Miembro
0
Temas del foro
0
Temas
0
Pregunta
0
Respuestas
0
Comentario de Pregunta
0
Me Gusta
0
Me Gusta Recibidos
0/10
Rating
0
Publicaciones del blog
0
Comentarios del blog
Share: