Exportieren in CSV-Codierungsprobleme

9

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.

    
Fofole 05.03.2017, 15:08
quelle

3 Antworten

2

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:

%Vor%

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.

    
prunge 23.04.2012 09:38
quelle
1

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:

%Vor%

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 ...

    
Joop Eggen 23.04.2012 09:56
quelle
1

Sie haben wahrscheinlich einige zusätzliche FilterServlets in Ihrem JBoss-Setup, die die Codierung stören. Möglicherweise im Zusammenhang mit Authentifizierung oder Komprimierung.

    
Fofole 04.05.2012 13:10
quelle

Tags und Links