keine Sonderzeichen nach Umstieg auf SLES9

Post Reply
Message
Author
Borat

keine Sonderzeichen nach Umstieg auf SLES9

#1 Post by Borat »

Ich migriere hier Applikationen von einem SLES8 System auf ein SLES9 System. Dabei gibt sich die Problematik, daß die Webapplikationen (teils PHP, teils Java/Tomcat, teils Perl) die Sonderzeichen nicht mehr darstellen.
Da ich auf die Server nur via Konsole zugreifen kann, hier aber ROOT Rechte besitze müsste ich wissen in welchem Configfile was geändert werden müsste.

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#2 Post by jochen »

Ich habe keine Ahnung, ob Du da mit einer Config-Änderung was erreichen kannst.

Das Problem mit den Zeichensätzen ist vielfältig: In welchem Encoding liegen die Daten/Skripte auf der Platte? Welches Encoding verwendet das System? Welches Encoding liefert der Webserver/das CGI-Skript/Tomcat aus? Und welches Encoding versucht der Browser dann daruzstellen?

Da Du die Probleme aber bei einer Migration von SLES8 zu SLES9 hast, würde ich auf eine Umstellung von ISO8859-15 (Latin-1 plus Eurozeichen) zu UTF-8 tippen. Dateien kannst Du dann am einfachsten mittels recode(1) konvertieren:

Code: Select all

recode ISO8859-15..UTF-8 dat
Das konvertiert den Inhalt von dat von ISO8859-15 zu UTF-8.

Wenn es das nicht ist, müsstest Du die Symptome genauer beschreiben. Erscheinen statt eines Umlautes 2 "Schrottzeichen"? Werden einzelne Umlaute als einzelne Schrottzeichen dargestellt? Werden Umlaute gar nicht dargestellt? Verschlucken SIe sogar das Zeichen, das auf den Umlaut folgen müsste? Bringt das Umstellen der Kodierung im Browser etwas (Ansicht/Zeichenkodierung im Firefox)?

Ich hoffe, das hilft weiter.

Grüße,
Jochen
Die grösste Lüge der EDV? "Mal eben..."

Borat

#3 Post by Borat »

Ich beschreibe am Besten mal die Symptome:

Ich habe auf des Server ausschließlich Zugriff über ssh und das mache ich mit Putty.
Wenn ich z.B. eine Datei erstelle mit dem Namen testüfile.txt und dann das Verzeichnis auflisten lasse dann wird das ü als ? angezeigt.
Image

Wenn ich einfach nur den Vim öffne werden Umlaute als ü angezeigt.
Image

Wenn ich im Vim dann ein Wort mit Umlauten eingebe dann wird zunächst der Umlaut verschluckt und dann die anschließenden zwei oder drei Buchstaben zu einem à zusammengefasst. Das Wort Überzeugungsarbeit wird zu Ãugungsarbeit.

Ich habe auf einer Testmaschine ein nackiges SLES10 installiert um zu sehen ob es da auch das Problem gibt.. und siehe da.. es ist das selbe. Dabei habe ich bei der Installation extra darauf geachtet, dass ich die Umlautthematik korrekt eingebe.

Borat

#4 Post by Borat »

Hiermal vorsichtshalber das Ergebnis von "locale"

SLES9 Server
LANG=
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

SLES8 Server
LANG=en_US
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=en_US

wobei eine Umstellung dieser Werte nichts gebracht hat.

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#5 Post by jochen »

Dann würde ich zuerst mal den putty als Übeltäter ausmachen! Wenn vim "Ã" und noch ein Zeichen anzeigt, liefert er Zeichen im UTF-8 Encoding. Außerdem erwartet er Zeichen UTF-8 encodet, denn wenn Du einen ISO8859-Umlaut schickst, nimmt es vim als Beginn eines Mehrbyte-Zeichens (so sehen Umlaute in UTF-8 eben aus).

Also muss Dein Client UTF-8 liefer/verstehen, macht es aber nicht. Korrektur: Stelle für die Session vor dem Verbindungsaufbau im Putty Configuration Dialog unter Windows/Translation das Dropdown-Feld auf UTF-8, dann sollte das vim-Problem schon mal aus der Welt sein, ggf. das Dateinamensproblem auch.

Grüße,
Jochen
Die grösste Lüge der EDV? "Mal eben..."

Borat

@Jochen

#6 Post by Borat »

Sehr gut.. im Putty ist die Umlautproblematik behoben. Es war genau wie von dir beschrieben: bei Translation auf UTF8 umgestellt und es funktioniert.

vielen Dank dafür..

Ich möchte nicht unverschämt erscheinen.. aber.. die Tomcat Sonderzeichenproblematik besteht nach wie vor.

Die Applikation läuft auf Tomcat4 auf nem Apache 2, SLES9.

Die Catalina.opts sind:
CATALINA_OPTS="-server -Xms768m -Xmx1024m -Dfile.encoding=ISO-8859-1"

Die Ausgabe sieht wie folgt aus:
Image
Image
Image

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#7 Post by jochen »

OK, dass die Putty-Spielerei natürlich nichts am Tomcat ändern kann, ist klar. Bisher haben wir die Daten an sich ja noch gar nicht verändert, sondern nur die Anzeige der Daten.

Mit dem Tomcat kenne ich mich nicht sonderlich aus. Aber die Option "-Dfile.encoding=iso8859-1" ist für mich eine Aussage, dass er davon ausgehen soll, dass Files im ISO8859-1-Format vorliegen. Wenn er die Daten so ausliefert, der Browser aber meint, er bekäme UTF-8 (weil's der vorgeschaltete Apache so behauptet?), wird die Darstellung natürlich wieder kaputt sein.

Die ersten Tests kannst Du im Browser vornehmen. Stell im Firefox einfach mal unter "Ansicht/Zeichenkodierung" um, in welchem Zeichensatz er die Seite darstellen soll. Ich würde mal tippen, dass zumindest ein Teil der Probleme verschwindet, wenn Du "Westlich (ISO-8859-1)" einstellst.

Aber anstatt an den Symptomen zu frickeln (= explizites "charset=..." im HTTP-Header mitzuliefern), würde ich das Problem an der Wurzel angehen und alle betroffenen Dateien mittels dem o.a. recode von ISO8859-1 zu UTF-8 umkodieren und die Option bezüglich file.encoding bei Start des Tomcat löschen. Natürlich aber erst mal an einer Testversion der Daten ausprobieren...

Grüße,
Jochen
Die grösste Lüge der EDV? "Mal eben..."

Post Reply