Hallo Forum,
ich muss mal wieder einem Problem Herr werden, dass mit
unterschiedlichen Zeichenkodierungen zu tun hat.
Folgende Situation:
-------------------
auf meiner lokalen Entwicklungsumgebung (OS X 10.5) habe ich ein
relative aktuelles Xampp installiert. Der Liveserver ist ein
Linux-Server mit PHP Version 5.1.6 also auch nichts ganz
altes. Auf beiden Systemen läuft ein und die selbe Website (Der
Code ist m.E. absolut identisch. Ich habe die Files vom Live-
server vor 2 Tagen per FTP heruntergeladen) und ich beobachte ein
sehr seltsames Verhalten, dass ich nicht wirklich deuten kann:
Auf der Seite gibt es eine Suche. Die Suche besteht aus einem Formular mit einem einfachen Textinput-Feld. Dieses Formular
wird auf jeder Unterseite eingebunden und beim Abschicken
an die Suchseite geschickt, die mit den empfangenen Daten eine Volltextsuche durchführt und das Ergebnis darstellt.
Unabhängig von der Suchseite unterscheidet sich das Verhalten
schon an dieser Stelle:
Gebe ich auf meiner Entwicklungsumgebung in das Suchfeld den
String "Übung" ein und schicke das Formular dann ab, lautet
der Request: ?Suchbegriff=Übung
Mache ich das selbe auf dem Liveserver lautet der Request:
?Suchbegriff=%DCbung
Einen Unterschied kann ich erkennen, wenn ich mir mit FF
die Sieteninformationen der Seite ausgeben lassen, wo ich
den Suchbegriff eingebe:
Der Liveserver sagt, die Kodierung sei ISO-8859-1, mein
Server hingegen sagt etwas von UTF-8.
Ich vermute, dass das irgendwie eine Konfiguration des Servers
ist (defualt_charset wird unter phpinfo() allerdings in beiden
Fällen mit no value angezeigt).
Da das Script allerdings auf beiden Servern funktionieren muss,
frage ich mich, wie ermittel ich die Kodierung der Seite, von
der aus das Formular abgeschickt wurde, bzw. wie ermittel ich
das auf der Seite selbst, um daraus einen Paramter zu machen,
den ich im Form mitschicke.
Ich bin mir bewusst, dass da langfristig grössere Aufräumarbeiten
vorgenommen werden müssen, um die Kodierung auf der ganzen Seite
sauber zu vereinheitlichen. Allerdings brauche ich jetzt erst
einmal eine kurzfristige Lösung.
Warum sagt der eine Server, die Kodierung sei ISO-8859-1,
wähend der andere sagt, sie sei UTF-8?
danke für TIpps und
beste gruesse,
heinetz