Mailinglisten-Archive |
Hallo Niels, Am Montag, 11. Dezember 2006 00:50 schrieb Niels Jäckel: > ich schlage mich gerade mit PHP's UTF-8 Funktionen herum. Deutsche > Umlaute und französische Buchstaben sind kein Problem - nur das > Euro-Zeichen macht Probleme. Dabei scheint es mir, dass utf8_decode() > damit nicht klar kommt. in der Doku steht zu utf8_decode: "Encodes an ISO-8859-1 string to UTF-8" Das Euro-Zeichen gehört nicht zum Zeichensatz ISO-8859-1. Der um das Euro-Zeichen erweiterte Zeichensatz ISO-8859-1 wird ist ISO-8859-15! > Ich habe unter [1] ein kleines Testskript hinterlegt, welches ein > Formular enthält, das UFT-8 Zeichen verarbeiten kann. Die > eingegebenen Daten werden einfach wieder ausgegeben - eigentlich kein > Problem. > > Allerdings habe ich festgestellt, dass uft8_decode() dann ein ? > zurückliefert, wenn das Eingabezeichen mit drei Byte repräsentiert > wird. Dies ist z.B. auch beim Euro-Zeichen oder beim Warenzeichen > (TM) der Fall. Beide werden nicht korrekt umgesetzt (mehr > 3-Byte-Zeichen unter [2]) S.o. > Ich suche nun eine Lösung, die mit PHP-Bordmitteln machbar ist. Eine > Übersetzung in Entities scheidet aus. Ebenso der Einsatz von > MultiByte-Funktionen. Ebenso möchte ich nicht auf irgendwelche > Windows-Codepages ausweichen ;-) Ich habe Dein Testskript bei mir hier einmal laufen lassen. Entferne einfach die utf8_decode-Zeilen. Diese Umsetzung brauchst Du ja gar nicht. So funktioniert es bei mir jedenfalls perfekt. Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive