matthiasforberg
Occasional Collector

Encoding der von FS erzeugten Dateinamen?

Jump to solution

Hallo zusammen,

ich habe eine Frage, denn wir haben in einem Projekt Probleme mit Umlauten in Dateinamen. Dabei verwenden wir die Einstellung "Advanced URLs" in der Generierung (kein URL-Creator Modul). Das sieht eigentlich auch alles erstmal gut aus, Umlaute kommen dabei lesbar heraus, z.B. "Über-uns.html". Bloß bei der Verarbeitung in hybris werden die dann irgendwann als "��ber-uns.html" eingelesen und damit unbrauchbar.

Eigentlich ziemlich genau der Fehler, der in diesem Artikel beschrieben wird: Java and File Names With Invalid UTF-8 – The Mindful Programmer

Aber ich denke eigentlich, dass FirstSpirit schon UTF-8 generiert. Das ist einerseits im Sprachkanal so eingestellt und ich habe in der fs-wrapper.conf diesen Eintrag gefunden:

wrapper.java.additional.4 -Dfile.encoding=UTF-8

Nur um sicher zu gehen. Interpretiere ich das richtig oder gibt es noch irgendwelche anderen Einstellungen, mit denen man das Encoding der erzeugten Dateinamen beeinflussen kann?

Viele Grüße
Matthias

1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

Hallo Matthias,

ich glaube, dass das ein Betriebssystem Problem ist.

FirstSpirit muss [wenn entsprechende Dateien erzeugt werden sollen] mit einem locale gestartet werden, welches UTF-8 konform ist, z.B. LANG=en_US.UTF-8

Kannst Du bitte prüfen, ob dies gegeben ist [also der User, der die Dateien an der defekten Stelle erzeugt, ein entsprechendes Locale zur Verfügung hat]?

Hinweis: Die betroffene Stelle ist die, an der es das erste Mal "kaputt" geht.

Reihenfolge, in der die Dateinamen zu prüfen sind, wäre somit:

fs5staging --> Verzeichnis, in das die Daten veröffentlicht werden --> Verzeichnis, aus dem die Daten verwendet werden.

HInweis: Auch für die Nutzung/Prüfung muss die entsprechende User-Session über ein passendes Locale verfügen.

Viele Grüße aus Dortmund,

  Holger

View solution in original post

0 Kudos
10 Replies
matthiasforberg
Occasional Collector

Ergänzung:

inzwischen haben wir herausgefunden, dass die Datei-Inhalte UTF-8 kodiert sind, die Dateinamen aber nicht, die sind ISO-8859-1.

Kann man das auch noch irgendwo einstellen?

Gibt's da vielleicht ein -Dfilename.encoding=UTF-8 oder sowas?

Grüße
Matthias

0 Kudos
matthiasforberg
Occasional Collector

Hallo zusammen,

da bislang nichts weiter kam, hier nochmal ein Update von mir. Inzwischen haben wir rausgefunden, dass die Dateinamen noch nicht einmal einheitlich mit ISO-8859-1 kodiert wurden, sondern wild durcheinander, da ist auch "ISO-8859-2" dabei, "ascii" und "windows-1252" - nur kein utf-8. Der Verdacht liegt nahe, dass das willkürlich vom Betriebsystem (Windows) festgelegt wird.

Gibt es wirklich keine Möglichkeit, das zu beeinflussen?

Danke für nützliche Tipps.

Grüße
Matthisa

0 Kudos

Hallo Matthias,

In dem Artikel wird einen Umgebungsvariable  gesetzt, die es leider nur unter unixartigen Betriebssystemen gibt. Ich hab mal etwas gegoogelt und bin auf sun.jnu.encoding gestoßen. Inspired by Actual Events: Java May Use UTF-8 as Its Default Charset  und http://mail.openjdk.java.net/pipermail/jdk8-dev/2012-November/001618.html

Erweitere mal deine wrapper config um: -Dsun.jnu.encoding=utf8

Ich sehe das selbst zum ersten mal! Wenn es klappt, würde ich mich über eine positive Rückmeldung freuen.

Gruß Thorsten

0 Kudos
thmarx
I'm new here

Hallo Matthias,

konnte dir das schon irgendwie weiterhelfen?

Gruß

Thorsten

0 Kudos
hoebbel
Crownpeak employee

Hallo Matthias,

ich glaube, dass das ein Betriebssystem Problem ist.

FirstSpirit muss [wenn entsprechende Dateien erzeugt werden sollen] mit einem locale gestartet werden, welches UTF-8 konform ist, z.B. LANG=en_US.UTF-8

Kannst Du bitte prüfen, ob dies gegeben ist [also der User, der die Dateien an der defekten Stelle erzeugt, ein entsprechendes Locale zur Verfügung hat]?

Hinweis: Die betroffene Stelle ist die, an der es das erste Mal "kaputt" geht.

Reihenfolge, in der die Dateinamen zu prüfen sind, wäre somit:

fs5staging --> Verzeichnis, in das die Daten veröffentlicht werden --> Verzeichnis, aus dem die Daten verwendet werden.

HInweis: Auch für die Nutzung/Prüfung muss die entsprechende User-Session über ein passendes Locale verfügen.

Viele Grüße aus Dortmund,

  Holger

0 Kudos
MichaelaReydt
Community Manager

Hallo Matthias,

ist deine Frage noch offen oder konnte Holger dir weiterhelfen?

In diesem Fall wäre es toll, wenn du seine "richtige Antwort" entsprechend markierst.

Viele Grüße

Michaela

0 Kudos

Hallo zusammen,

ich hatte leider bislang noch nicht die Möglichkeit, die Vorschläge auszuprobieren. Wir haben das einfachste gemacht, nämlich auf Default-URLs umgestellt und somit werden keine Sonderzeichen mehr generiert. Aber ich werde das gegen Ende des Jahres sicher nochmal ausprobieren, wenn wieder etwas mehr Luft ist.

Vielen Dank für die Hilfe!
Grüße
Matthias

0 Kudos

Hallo Forbi,

   gib uns dann einfach Bescheid. Und viele Grüße an die alten Hasen Smiley Happy

Viele Grüße

   Elmar

0 Kudos
mikula
Crownpeak employee

Frohes neues Jahr Matthias,

ist das Thema hier noch offen? Konntest du das evtl. in einer freien Minute während der Feiertage anschauen?

Viele Grüße

Martin

0 Kudos