Sven Rautenberg: Kleines UTF-8 Problem

Beitrag lesen

Moin!

Ich habe ein kleines PHP Problem ich verwende für meine PHP Seiten UTF-8 und wenn ich per Formular (Post) ein Sonderzeichen bekommt ist das automatisch in UTF-8. Zur auswertung benötige ich aber ISO-8859-1

Wieso denn das?

Wie kann ich überprüfen ob der gesendete String in UTF-8 ist?

Der String ist in dem Encoding, dass im Formular mittels accept-charset-Attribut erlaubt wurde. Beachte die Anmerkungen in http://de.selfhtml.org/html/formulare/definieren.htm#zeichenkodierung.

Weil ist ja leider so das utf8_encode([UTF-8 String]) != utf8_encode([ISO-8859-1 String]) ist.

Tatsache ist, dass man leider nie zu 100% sicher sein kann, in welchem Encoding ein String vorliegt, wenn diese Angabe nicht parallel dazugeschrieben wird. Es gibt diverse Funktionen, die das erraten wollen, indem sie typische Buchstaben suchen, deren Encoding sich unterscheidet - aber eine wirklich sichere Erkennung ist das nicht.

Ich bin mir sicher das es dafür eine einfach Lösung gibt. Ich habe schon mal so ein Skript in einem Anderen zusammenhang gesehen, aber nach einer Stunde googlen habe ich weder das beispiel noch eine andere Lösung gefunden.

Es gibt keine einfache Lösung zum Erkennen des verwendeten Encodings.

Aber es gibt einfache Lösungen, um ein bekanntes Encoding in ein anderes Encoding umzuwandeln. Beispielsweise iconv().

Aber du solltest noch mal genauer erläutern, warum du in einer UTF-8-Umgebung plötzlich ISO-8859-1 benötigst.

- Sven Rautenberg

--
My sssignature, my preciousssss!