Ich habe ein Listgrid, in dem alle Elemente korrekt mit diakritischen Zeichen angezeigt werden, so wie sie in db sowohl lokal als auch auf dem jboss-Server sind.
Wenn ich jedoch auf dem jboss-Server versuche, als CSV zu exportieren, werden alle diakritischen Zeichen ersetzt, sodass ich etwas wie Ã~coala anstelle von Şcoala bekomme, obwohl Diakritika im Listgrid korrekt angezeigt werden.
Lokal funktioniert sowohl im Listgrid als auch im Export.
Hier ist mein Code für den Export:
%Vor%Auch in meiner jboss 7 Eigenschaftendatei habe ich folgendes:
%Vor%Das funktioniert so, wie die Listgrids Diakritika richtig anzeigen.
Auch in meiner web.xml habe ich für mein Servlet
%Vor%Vielleicht bin ich auf einem falschen Weg und dies wird durch etwas anderes verursacht.
Sowohl die lokal exportierte Datei als auch die vom jboss-Server exportierte Datei haben die genaue Dateigröße.
Auch für meinen Jboss jvm setze ich die Eigenschaft für java_opts
%Vor%BEARBEITEN: hat die Params-Map aufgrund eines Vorschlags hinzugefügt. Immer noch nichts.
Es klingt, als wäre es ein Problem mit der Kodierung / Dekodierung von Zeichen.
Ihr Code hat eine CSV-Datei in der UTF-8-Codierung generiert. Welches Programm verwenden Sie jedoch zum Lesen der CSV? Windows Notizblock? Wenn es sich um eine Windows-Anwendung handelt, wird davon ausgegangen, dass sich die Textdatei in ISO-8859-1 befindet .
Option 1:
Sagen Sie dem Editor oder Ihrer Windows-Anwendung die Codierung. Bei Notepad gibt es im Dialog Datei / Öffnen ein Dropdown-Menü für die Kodierung. Wechseln Sie zu UTF-8.
Option 2:
Ändern Sie die Codierung in Ihrem Quellcode von UTF-8
in ISO-8859-1
, was der Standardcodierung von Windows entspricht. Ändern der Zeile:
bis
%Vor% wird hoffentlich den Trick machen. Die Einstellung org.apache.catalina.connector.URI_ENCODING
hat keinen Einfluss auf die Kodierung der Datei und sollte so belassen werden wie sie ist.
Ich muss zugeben, dass ich in dieser Konstellation kein charset=...
gesehen habe.
Aber der Zeichensatz macht mehr Sinn für Text, also versuchen Sie es zuerst:
Grund, application
, was durchaus Binärdaten anzeigen könnte, würde eine Zeichensatzcodierung gefährlich machen.
Hinzugefügt: meine Erklärung für den Fehler
Vielleicht hat die Zeichenfolge asExport
UTF-8, aber gibt für ein Multi-Byte-Zeichen stattdessen zwei Zeichen an. Diese sind auch im Nicht-ASCII-Bereich und Ihre Antwort möchte irgendwie ISO-8859-1 (den Standard-Latin-1) liefern und schreibt ??
. Das sind 2 Fehler.
Sie könnten asExport
untersuchen. Warum das Schreiben in UTF-8 trotz charset = UTF-8 nicht gelingt ...