MySQL ignoriert Sonderzeichen

Die beiden Statements:
Code:
SELECT *
FROM `member`
WHERE `charname` = 'Chipzudip'

und

Code:
SELECT *
FROM `member`
WHERE `charname` = 'Chîpzudip'

liefern das selbe Ergebnis: Unbenanntf6766.jpg

Da ich aber fetch_row nutze krieg ich immer nur den ersten, das Problem ist das er mir bei dem Statement aber nicht 3 Ergebnisse liefern dürfte, da es 3 unterschiedliche Namen sind.
 
Welche mySQL-Version verwendest du?

Es scheint bis 5.6 einen Bug bezüglich dieser Art von Zeichen und utf8_unicode_ci zu geben, der danach angeblich gefixxt ist (kann's hier grad nicht testen).

Ansonsten könntest du nur auf utf8_bin ausweichen, das ist dann aber aufgrund des binären Vergleichs case-sensitive...
 
Welche mySQL-Version verwendest du?

Es scheint bis 5.6 einen Bug bezüglich dieser Art von Zeichen und utf8_unicode_ci zu geben, der danach angeblich gefixxt ist (kann's hier grad nicht testen).

Ansonsten könntest du nur auf utf8_bin ausweichen, das ist dann aber aufgrund des binären Vergleichs case-sensitive...
Genau das ist es, danke dir!
Wie stell ich jetzt noch die DB/Tabellen auf UTF8_bin um ohne die vorhandenen Daten nicht zu zerstören?
 
Zuletzt bearbeitet:
Vielleicht solltest du sicherheitshalber ein Backup der Tabelle machen (phpmyadmin - Optionen - Kopieren); wenn die Daten erstmal mistig sind, hast du's schwer...


Es MÜSSTE so hinhauen (Tabelle)
SQL:
ALTER TABLE `member` CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

Ich glaube für die ganze DB kannst du's nicht im gleichen Schwung umwandeln...




edit: ha, seh gerade
ohne die vorhandenen Daten nicht zu zerstören?

Dann lass das Konvertieren einfach weg ;)
 
Zuletzt bearbeitet von einem Moderator:
Zurück