phpbar.de logo

Mailinglisten-Archive

[php] String auf UTF-8 prüfen oder die Frage "kodiert oder nicht"?

[php] String auf UTF-8 prüfen oder die Frage "kodiert oder nicht"?

M.Haertel at hzd.hessen.de M.Haertel at hzd.hessen.de
Die Jul 18 09:47:25 CEST 2006


Hallo zusammen,
 
Leider habe ich das Problem, daß ich von Anfragen an verschiedene Server unterschiedliche XML Dokumente erhalte. 
 
Oder wahrscheinlich korrekter ausgedrückt: Obwohl "domxml_open_mem()" keine Fehlermeldung zurückgibt und ich das Dokument erfolgreich auswerten kann, ist die Ausgabe der gewonnenen Variablen auf der HTML Seite mit der Header-Angabe ("<meta http-equiv="content-type" content="text/html; charset=UTF-8">") unterschiedlich!
 
Wenn ich eine Seite mit fehlerhafter Darstellung im Browser auf "ISO-8859-1" umstelle, erscheinen die Umlaute korrekt (Im Header der Datei steht weiterhin die UTF-8 Codirerung).
 
Daraus schließe ich, daß die UTF-8 Zeichen aus dem Dokument (Und es sollten ja welche vorhanden sein, weil bei NICHT-UTF-8 Kodierung domxml_open_mem() meckern würde!) mal in ISO Zeichen konvertiert wurden und mal nicht.
Da jedoch ein und die gleiche PHP Seite mal richtige und mal falsche Umlaute anzeigt (abhängig von den angefragten Servern), kann ich nicht im Voraus testen, ob die Zeichen schon de- bzw. encodiert worden sind oder nicht. Da doppelte UTF8_encodierte zeichen auch falsch dargestellt werden, benötige ich einen Weg, zu testen ob das XML Dokument nun UTF-8 Zeichen enthält bzw. die Variablem im UTF-8 Format vorliegen oder nicht.
 
Bislang habe ich mir ord() versucht, alle UTF-8 Zeichen zu erkennen. Doch ein ISO-8859-1  'ä' hat den gleichen Wert wie ein nicht UTF_8 dekodiertes 'ä', welches auf einer UTF-8 Seite dann als 'À' dargestellt wird, so daß es mit ord() nicht funktioniert.
 
Hat da einer den Überblick?
 
Gruß,
 
Michael 

 
 
 

php::bar PHP Wiki   -   Listenarchive