Frage

Ich entwickle eine Java-Anwendung, die Daten in CSV-Dateien, sollten geöffnet werden, in Excel von Endanwendern exportiert. Wir habe gerade bemerkt, dass der Export-Funktion verwendet die Java-Plattform Standard-Kodierung. Dies bewirkt, dass Umlaute auf dem Build-Server zum Scheitern verurteilt verloren und Unit-Test wird (die so konfiguriert ist US-ASCII als Plattform Standard-Kodierung hat genau solche potenziellen Probleme zu fangen).

Die Frage ist: welche ist die beste Codierung zu verwenden würde? Wie bestimmt Excel, welche Codierung zu verwenden? Gibt es etwas, plattformspezifische verwenden, die vermutlich übereinstimmt Java-Plattform Standard?

Ich bin Neigung zur Zeit in Richtung Hardcoding Cp1252 - das ist die Zielmaschinen abdecken soll (die Deployment-Umgebung tatsächlich angegeben) und das Testproblem würde beheben. Von googeln um, scheint Excel nicht UTF-8 gut zu handhaben, so dass aus ist, und auf die Plattform Standard-Kodierung kleben würde irgendeine Art von Problem zu umgehen Hack für die Tests erfordern.

War es hilfreich?

Lösung

Ich würde erwarten, Excel gut mit der Plattform Standard-Kodierung zu arbeiten, also mit, dass kleben scheint die beste Wahl für Excel im allgemeinen Fall. Prüfen, ob die Plattform Standard-US-ASCII ist und mit Cp1252 statt (ich denke, den Hack für die Tests) wäre die konzeptionelle Äquivalent eine Compiler-Warnung zu unterdrücken. Sie wissen, dass es in diesem Fall nicht anwendbar ist.

Da jedoch die Sie schreiben, dass Sie die Produktionsumgebung steuern, warum zögern Sie hart Code Cp1252? Es scheint wie eine vollkommen vernünftige Lösung, wenn das die Zielcodierung der Anwendung ist.

Andere Tipps

Sie können Systemgebietsschema erhalten (von Systemeigenschaften) und Ausgabedatei mit dieser Codierung erstellen. Wenn Ihre Dateien werden nur in Excel geöffnet werden kann, Sie zu Apache POI suchen müssen nehmen?

Denken Sie Excel funktioniert gut mit UTF-16. Was ist los mit in UTF-16 exportieren. Zumindest auf diese Weise nicht-ASCII-Zeichen werden beibehalten, anstatt nur wegzuwerfen.

Bearbeiten, ok, 'gut' vielleicht übertreiben, wie Arbeiten mit UTF-16 übertreffen, aber es scheint immer noch, dass UTF-16LE funktioniert besser als UTF-8

UTF-8 sollte auch jetzt funktionieren. Ich kratzte Produkte dann als CSV speichern, verwenden Sie WP Alle importieren dann diese CSV laden, alles wandelt in XML dann hochgeladen alle als WP Beiträge. Toll! Schauen Sie sich auf Marmelade tangan casio

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top