Qudus
09-03-2006, 18:55
hi
Ich habe einen String, den ich als UTF-8 einlese. Nun will ich die Umlaute in HTML-Steuerzeichen konvertieren, damit ich den String in einer UTF-8-XHTML-Seite verwenden kann. Z.B. ein str_replace("ü", "ü", $utfString); funktioniert nicht, da die Funktion das ü aufgrund des "falschen" charsets nicht erkennt.
Ich habe leider keine Funktion gefunden, um den String von UTF-8 nach bsp. ISO-8859-1 zu konvertieren. htmlSpecialChars() konvertiert keine Umlaute und htmlSpecialChars() und htmlEntities() konvertieren zu viel. Daher bin ich einen kleinen Umweg gegangen:
$ isoString = html_entity_decode(htmlEntities($utfString, ENT_NOQUOTES, "UTF-8"), ENT_NOQUOTES);
Mit diesem String kann ich dann weiterarbeiten, und die Umlaute gezielt ersetzen. Allerdings bedeutet das natürlich unnötigen Rechenaufwand.
Ich denke mir aber, dass das doch keine ungewöhnliche Problemstellung im PHP-Bereich ist. Es sollte also eine entsprechende Funktion geben. Kann mir vielleicht jemand sagen, wie die heißt?
Gruß, Qudus
Ich habe einen String, den ich als UTF-8 einlese. Nun will ich die Umlaute in HTML-Steuerzeichen konvertieren, damit ich den String in einer UTF-8-XHTML-Seite verwenden kann. Z.B. ein str_replace("ü", "ü", $utfString); funktioniert nicht, da die Funktion das ü aufgrund des "falschen" charsets nicht erkennt.
Ich habe leider keine Funktion gefunden, um den String von UTF-8 nach bsp. ISO-8859-1 zu konvertieren. htmlSpecialChars() konvertiert keine Umlaute und htmlSpecialChars() und htmlEntities() konvertieren zu viel. Daher bin ich einen kleinen Umweg gegangen:
$ isoString = html_entity_decode(htmlEntities($utfString, ENT_NOQUOTES, "UTF-8"), ENT_NOQUOTES);
Mit diesem String kann ich dann weiterarbeiten, und die Umlaute gezielt ersetzen. Allerdings bedeutet das natürlich unnötigen Rechenaufwand.
Ich denke mir aber, dass das doch keine ungewöhnliche Problemstellung im PHP-Bereich ist. Es sollte also eine entsprechende Funktion geben. Kann mir vielleicht jemand sagen, wie die heißt?
Gruß, Qudus