phpbar.de logo

Mailinglisten-Archive

[php] UFT-8 und Euro-Zeichen

[php] UFT-8 und Euro-Zeichen

Niels Jäckel niels.jaeckel at silice.de
Mon Dez 11 00:50:06 CET 2006


Hallo in die Runde,

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.

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])

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 ;-)

Ist dieses Problem schon allgemein bekannt? Leider habe ich bei meiner 
Recherche nur Workarounds gefunden - keine wirkliche Lösung. Ist PHP 
überhaupt in der Lage, Zeichen mit mehr als 2 Byte darzustellen?


Vielen Dank,
Niels

1: http://silice.de/test/utf8.php
2: http://www.utf8-zeichentabelle.de/unicode-utf8-table.pl?start=8192

php::bar PHP Wiki   -   Listenarchive