UTF-8 Umlaut Problem
iTob
- datenbank
Hallo zusammen,
ich verwende in meiner MySQL Datenbank den Zeichensatz UTF-8. Es funktioniert eigentlich alles super mit diesem Zeichensatz bis auf die Umlaute. Wenn ich z.B. eine SQL-Abfrage wie folgt ausführe:
SELECT name FROM Kunden WHERE Kunden.name LIKE 'ü%'
bekomme ich nicht nur Kundennamen beginnend mit ö, sonder auch beginnend mit einem y. wie kommt dieses Problem zu stande und was kann ich dagegen machen?
wäre super wenn Ihr mir auf die Sprünge helfen könntet!
liebe grüße, iTob
ich verwende in meiner MySQL Datenbank den Zeichensatz UTF-8.
zeichencodierung - utf-8 ist eine zeichentransformationsmethode, kein zeichensatz - der zugehörige zeichensatz ist unicode
wäre super wenn Ihr mir auf die Sprünge helfen könntet!
du verwendest vermutlich nicht utf-8 als zeichencodierung in deiner datenbank sondern latin1_swedish_ci oder _cs alternativ könnte es natürlich auch sein, dass du utf8_swedish_ci verwendest - das ist aber afaik erst in mysql 6.x fix reinkompiliert, in den versionen davor in den standard-builds aber nicht enthalten
du verwendest vermutlich nicht utf-8 als zeichencodierung in deiner datenbank sondern latin1_swedish_ci oder _cs alternativ könnte es natürlich auch sein, dass du utf8_swedish_ci verwendest - das ist aber afaik erst in mysql 6.x fix reinkompiliert, in den versionen davor in den standard-builds aber nicht enthalten
Doch, in meinen Tabellen wird ganz sicher die Zeichencodierung UTF-8 verwendet.
echo $begrüßung;
Doch, in meinen Tabellen wird ganz sicher die Zeichencodierung UTF-8 verwendet.
a) Wie definierst du "ganz sicher"? Oder anders: Wie überprüfst du das?
b) Es gibt noch ein paar mehr Stellen als "Tabelle", an denen die korrekte Zeichenkodierungsangabe eine Rolle spielt. Relevant sind letzlich nur die Kodierungsangaben der Felder und die Kodierung auf der Verbindung zwischen einem Client und dem MySQL-Server. Hier müssen ausgehandelter oder Default-Wert mit der tatsächlich verwendeten Kodierung übereinstimmen.
c) Für die Bewertung der Gleichheit oder der Unterschiedlichkeit von Buchstaben spielt die Kollation eine Rolle. Siehe beispielsweise: Examples of the Effect of Collation
Allgemeiner Literaturtipp: MySQL-Handbuch-Kapitel Character Set Support
echo "$verabschiedung $name";
Tach.
Wenn ich z.B. eine SQL-Abfrage wie folgt ausführe:
SELECT name FROM Kunden WHERE Kunden.name LIKE 'ü%'
bekomme ich nicht nur Kundennamen beginnend mit ö, sonder auch beginnend mit einem y. wie kommt dieses Problem zu stande und was kann ich dagegen machen?
Du meinst ü, oder?
Vermutlich benutzt Du die falsche Kollation.