MySQL ignoriert Sonderzeichen

owned139

Mitglied
Guten Tag,
ich habe Accountnamen in eine UTF-8 DB geschrieben, dort taucht ein accountname allerdings 3 mal auf, wobei er sich nur in einem Zeichen jeweils Unterscheidet. Einmal mit i, einmal mit î und einmal mit í.
In meiner Abfrage erhalte ich allerdings immer nur den Eintrag mit dem normalen i, bei allen 3 Fällen.
Das Skript wurde ebenfalls in UFT-8 umgestellt, woran kann das liegen?
Selbst in phpmyadmin habe ich das selbe Problem.

Code:
SELECT *
FROM `charinfo`
WHERE `charname` = 'Chîpzudip'
LIMIT 0 , 50
 
Nur so als fixe Idee: Hast du nach dem Connect die Client-Verbindung auch auf UTF-8 eingestellt?

PHP:
mysql_query("SET NAMES 'utf-8'") or die( mysql_error() );
 
Was gibt dieser Query aus?

Code:
SELECT `TABLE_COLLATION` FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_NAME` LIKE 'charinfo';
 
Und der?

Code:
SELECT `CHARACTER_SET_NAME`, `COLLATION_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_NAME` LIKE 'charinfo' AND `COLUMN_NAME` LIKE 'charname';
 
Bei PHPMA taucht das Problem also auch auf? Mhhh.
Wie ist der entsprechende user den in die Datenbank gekommen und existiert der wirklich dreimal oder liefert dir MySQL drei Results zurück, obwohl nur einer existieren sollte(das wäre ein größeres problem).
 
Ja der Accountname existiert 3x wobei sich wie gesagt nur das i unterscheidet....er liefert mir mit dem Statement aber immer den ersten egal ob î oder í.
 
Ja der Accountname existiert 3x wobei sich wie gesagt nur das i unterscheidet....er liefert mir mit dem Statement aber immer den ersten egal ob î oder í.

Hmm, jetzt muss ich noch mal blöd nach fragen: Was bedeutet "er liefert immer den ersten"? Ist mit "egal ob î oder í" die Buchstaben in der WHERE-Condition gemeint?

Bis lang hab ich es so verstanden: Egal, welches 'i' in der WHERE-Condition steht, du bekommst immer ein kleines i zurück (ASCII-Tabelle 0x69).

Kannst du mal mit

PHP:
debug_string($s)
{
  for($i=0; i < strlen($s); $i++)
    printf("0x%2x ", ord($s[$i]);
}

Die einzelnen Buchstaben des Ergebnisses sowie des Strings in der WHERE-Condition ausgeben lassen?

Weitere Frage: benutzt deine Applikation header() um UTF-8-Content zu senden?
 

Neue Beiträge

Zurück