Einführung in die Lösung für von Java exportierte verstümmelte CSV-Dateien
1. Problem
Wenn die abgefragten Daten als XLS-Datei (UTF-8-Kodierung) exportiert werden, sind die Daten normal; CSV-Datei, die Daten in der Datei sind verstümmelte chinesische Zeichen, die auch in UTF-8 kodiert sind. Beim Export in GBK-Kodierung ist die chinesische Anzeige normal.
Ich dachte, das Problem sei gelöst, als ich später Daten mit lateinischen Zeichen (z. B. ÀÆÊàÌ) exportierte, wurden die als XLS-Datei exportierten Daten normal angezeigt Datei wurden als „?“ angezeigt.
Ich habe versucht, auf andere Kodierungsmethoden umzusteigen, aber es hat nicht funktioniert. Ich habe online eine Lösung für dieses Problem gefunden.
2. Lösung
Die im CSV-Modus exportierte Datei enthält standardmäßig keine Stücklisteninformationen (Byte-Stream beginnend mit EF BB BF) für den auszugebenden Inhalt. Das heißt, dieses Problem kann gelöst werden. Die spezifische Methode lautet wie folgt: (Empfohlen: Java-Video-Tutorial)
... OutputStreamWriter outputStreamWriter = new OutputStreamWriter(response.getOutputStream(), "UTF-8"); // 要输出的内容 result = (String)contentMap.get(RESPONSE_RESULT); response.setHeader("Content-Disposition", "attachment;filename=test.csv"); outputStreamWriter.write(new String(new byte[]{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF})); outputStreamWriter.write(result); outputStreamWriter.flush();
Wenn sie mit dem OutputStream-Stream implementiert wird, können die Parameter wie folgt geändert werden:
out = response.getOutputStream(); //加上UTF-8文件的标识字符 out.write(new byte []{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF});
Hinweis:
BOM: Byte Order Mark, Byte Order Mark (das Folgende stammt aus der Baidu-Enzyklopädie)
In der UCS-Codierung gibt es einen Code namens „Zero Width No-Break Space“, was ins Chinesische als „Zero-Width No-Break Space“-Zeichen übersetzt wird, seine Kodierung ist FEFF. FFFE ist ein Zeichen, das in UCS nicht existiert und daher in der tatsächlichen Übertragung nicht vorkommen sollte.
Die UCS-Spezifikation empfiehlt, dass wir vor der Übertragung des Bytestreams die Zeichen „Zero Width No-Break Space“ übertragen. Wenn der Empfänger FEFF empfängt, zeigt er auf diese Weise an, dass der Bytestrom Big-Endian ist. Wenn er FFFE empfängt, zeigt er an, dass der Bytestrom Little-Endian ist. Daher wird das Zeichen „Zero Width No-Break Space“ auch BOM genannt.
UTF-8 erfordert keine BOM zur Angabe der Bytereihenfolge, kann jedoch eine BOM zur Angabe der Codierung verwenden. Die UTF-8-Kodierung für das Zeichen „Zero Width No-Break Space“ ist EF BB BF. Wenn der Empfänger also einen Bytestrom empfängt, der mit EF BB BF beginnt, weiß er, dass dieser UTF-8-codiert ist. Windows verwendet BOM, um die Kodierung von Textdateien zu markieren.
Weitere Java-Kenntnisse finden Sie in der Spalte Java Basic Tutorial.
Das obige ist der detaillierte Inhalt vonEinführung in die Lösung für von Java exportierte verstümmelte CSV-Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Dreamweaver Mac
Visuelle Webentwicklungstools

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.