dedlfix: Mysql / PHP/ UTF-8, Umlaute werden abgeschnitten

Beitrag lesen

echo $begrüßung;

Rufe ich diese query manuell über phpmyadmin (2.6.3-pl1) auf, so sieht alles super aus. mache ich das selbe nun über ein mysql_query in meinem PHP-Script, steht statt "mühe" in der Datenbank nur "m".

Bist du sicher dass sich plötzlich der Datenbank-Wert ändert? Vermutlich teilt dein Script dem Browser nicht die richtige Kodierung mit. Es könnte auch sein, dass dein Script ansonsten mit ISO-8859-1 kodierte Daten liefert und du dazwischen die mit UTF-8 kodierten Daten aus der Datenbank ausgibst. Es kann aber auch was ganz anderes sein. (phpMyAdmin hat das Problem vor dem du stehst schon gelöst, deswegen bereitet es auch keine Probleme.)

Du solltest herausfinden, wo du welche Kodierung verwendest, welche Kodierungsangaben in deinen HTML-Dokumenten stehen, welche Kodierungsangabe der Server in den HTTP-Headerzeilen mitsendet (die überschreibt die Angaben in HTML-Dokumenten).
Hilfreich dafür sind Browser-Extensions, die die gesendeten HTTP-Header anzeigen können. Manchmal hilft auch das Umstellen der Zeichenkodierung im Browser, um die Kodierung der Zeichen herauszubekommen.
Wenn nichts hilft, könntest du mit
  echo chunk_split(bin2hex('test string'), 2, ' ');
die einzelnen Bytes anschauen, die die Abfrage zurückliefert.

echo "$verabschiedung $name";