phpbar.de logo

Mailinglisten-Archive

[php] UFT-8 und Euro-Zeichen

[php] UFT-8 und Euro-Zeichen

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mon Dez 11 09:29:32 CET 2006


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