Seltsames Codierungsproblem
Hi Zusammen,
ich habe ein Skript, das eine XML-Datei (die in UTF-8 codiert ist) ausliest und einen bestimmten Inhalt davon in einen Array (im Folgenden Array 1 genannt) schreibt. Im Code ist Array 1 "$meldungenliste_xml" Code:
$auswirkungen=simplexml_load_file($xml_datei); Dort wandle ich ihn per unserialize und base64_decode wieder einen Array zurück. Funktioniert soweit wunderbar. Der Array 1 sieht wieder ganz genau so aus. Nun durchlaufe ich Array 1 per foreach und übergebe einen bestimmten String davon an eine andere Funktion, in der dieser wiederum in einen Session-Array geschrieben wird (im folgenden Array 2 genannt). Den Sinn des ganzen zu erklären würde an dieser Stelle den Rahmen sprengen. Nun kommt jedenfalls das seltsame: Eine weitere Funktion vergleicht die Strings aus Array 1 und 2 wieder miteinander und prüft ob diese identisch sind (was ja so sein sollte, da Array 2 ja aus Array 1 aufgebaut wird). Bei allen Strings ohne Umlaute werden diese als identisch erkannt. Sobald aber ein Umlaut in einem String drin ist, werden die beiden eigentlich gleichen Strings nicht mehr als gleich erkannt, obwohl sie im Browser noch genau gleich aussehen! Meine Funktion prüft quasi z.B. den String 'Überdruck Ventil 1' aus Array 1 mit dem String 'Überdruck Ventil 1' aus Array 2 und gibt dann aus: 'Überdruck Ventil 1' ist nicht gleich 'Überdruck Ventil 1' Es scheint so als ob die Texte unterschiedlich codiert sind und nur scheinbar gleich aussehen. Hat jemand eine Idee, wie ich dem Fehler auf die Schliche kommen könnte? Sorry, klingt total verwirrend - zugegebenermaßen. Macht in meinem Skript aber Sinn. |
AW: Seltsames Codierungsproblem
Auf die schnelle würde mir etwas wie htmlspecialchars oder real_escape_string einfallen.
htmlspecialchars() wäre eine Variante, wo du vor dem Vergleich beide Strings durchschicken könntest. also eine Prüfung ala PHP-Code:
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:35:53 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.