dedlfix: UTF8 - Sonderzeichenformatierung

Beitrag lesen

Hi!

Eingabe im Forumular: Ü
Hex ausgegeben: 264174696c64653b9c

Ein einzelnes Ü ist in keiner gebräuchlichen Kodierung so lang. Mal sehen, was du wirklich eingegeben hast (beziehungsweise, was bei PHP angekommen ist). Dazu nimmt man eine Kodiertabelle, beispielsweise für den Anfang ISO-8859-1:

26 41 74 69 6c 64 65 3b 9c
&  A  t  i  l  d  e  ;  œ

Ach, herrjeh! Da kommt also ein Mischmasch aus HTML-Entity-Referenz und einem einzelnen Byte an. Hast du die Seite irgendwo online, denn so ein Fall ist mir noch nicht vorgekommen. - Du hast aber zwischen dem Eingang der Daten und der Kontrollausgabe keine weitere Verarbeitung dazwischen?

Deine Baustelle ist also erst einmal hier, obwohl du auch noch Wissenslücken zur nachfolgenden Verarbeitung hast.

an Mysql auch hier ist alles utf8_gerenal_ci
Definiere "alles". Es sind (wie schon so oft hier gesagt) zwei Dinge wesentlich: die Kodierung der einzelnen Felder und die auf deiner Verbindung ausgehandelte Kodierung. Wie sind diese beiden Werte eingestellt?
in meiner .htacces steht:
AddDefaultCharset UTF-8

In dem Zusammenhang nicht weiter interessant. Das beeinflusst nur die Ausgabe an den Browser, nicht aber die davor stattfindende Verarbeitung in PHP. PHP spricht ja mit MySQL, also sind die Werte auf der Verbindung zwischen PHP und MySQL maßgebend. Stichwörter: mysql(i)_set_charset() oder ein SET NAMES Statement)

Ich hatte noch vergessen, das die Tabellen, als auch die Spalten "utf8_general_ci" als Kollation haben.

Wie gesagt, die Feldkodierung ist für die Ablage der Daten maßgebend, nicht die der Tabelle oder der Datenbank oder gar des Systems, denn das sind alles nur Default-Werte für nicht explizit angegebene Kodierungen/Kollationen untergeordneter Elemente.

Lo!