Wenn die abgefragten Daten als XLS-Datei (UTF-8-Kodierung) exportiert werden, sind die Daten normal, aber beim Export als CSV-Datei sind die chinesischen Zeichen in der Datei verstümmelt auch UTF-8-kodiert, wenn der Export auf GBK-Kodierung umgestellt wird, ist die chinesische Anzeige normal. (Empfohlen: Java-Video-Tutorial)
Lösung:
Die im CSV-Modus exportierte Datei enthält standardmäßig keine Stücklisteninformationen, da der Inhalt angegeben wird Ausgabe Durch Festlegen der Stücklistenkennung (Bytestream beginnend mit EF BB BF) kann dieses Problem gelöst werden. Die spezifische Methode lautet wie folgt:
... 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});
Für weitere Java-Kenntnisse beachten Sie bitte die Java Basic Tutorial Spalte.
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem verstümmelter Zeichen in exportierten CSV-Dateien mit Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!