dedlfix: Konvertierung bei MySQL

Beitrag lesen

echo $begrüßung;

irgendetwas mache ich falsch und kann einfach meinen Fehler nicht finden. Ich habe meine Daten in der Datenbank als UTF-8 hinterlegt und soweit funktioniert alles ganz gut.

Es gibt im MySQL-Server 10 verschiedenartige Stellen, an denen eine Kodierungsangabe eine Rolle spielt. Hast du konsequent auf geachtet? (Wenn du alle 10 Arten kennst, solltest du keine Probleme mehr haben :-)

Nun habe ich per PHP eine Abfrage, die alle Artikel, die mit "LÖSCHEN" beginnen nicht berücksichtigen soll.

Welche Kodierung ist das?

leider funktioniert dies nicht ich erhalte das richtige Ergebnis nur mit "...not like 'LÖSCHEN%'

Vermutlich verwendest du ISO-8859-1 in PHP und MySQL geht aber davon aus, UTF-8 zu bekommen. Verwende überall UTF-8 oder gib den beteiligten Parteien an, welche Kodierung du verwendest. Solltest du mit einer anderen Kodierung als in der Servereinstellung konfiguriert mit dem Server kommunizieren wollen, so sag ihm das. Eine Möglichkeit steht gleich auf der Einstiegsseite zum Handbuchkapitel Character Set Support.

so weit so gut, also habe ich versucht mit "...not like CONVERT ('LÖSCHEN%' USING utf8)" die Abfrage zu ändern, aber das gleiche Ergebnis :s

Du gibst nicht explizit an, in welcher Kodierung das String-Literal 'LÖSCHEN%' vorliegt. Vermutlich ist es auch nicht so kodiert, wie der Server es standardmäßig erwartet, denn eine Verbindungskodierung hast du ja auch nicht ausdrücklich angegeben. Vergleiche Kapitel CONVERT() and CAST() und Character String Literal Character Set and Collation.

echo "$verabschiedung $name";