Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Es gibt Symbole wie  und so weiter in der Datenbank, was tun?

Es hängt irgendwie davon ab, was das Problem tatsächlich ist ...

Wenn es so ist, dass diese Zeichen vermeintlich sind um dort zu sein (wie "Mañana" auf Spanisch), müssen Sie sicherstellen, dass alles in UTF-8 ist ... der beste Weg ist:

1:Überprüfen Sie, ob die Datenbanktabellen in "utf-8"-Codierung sind (wenn nicht, konvertieren Sie sie in utf-8)

2:Stellen Sie, wie Martin bemerkte, sicher, dass der Datenbank-Connector utf-8 ist, indem Sie so etwas wie:

verwenden
mysql_set_charset('utf8'); //note that MySQL uses no hyphen here

3:Stellen Sie sicher, dass das Dokument utf-8 ist (Sie können oben eine Kopfzeile hinzufügen)

<?php header('Content-type:text/html;charset=utf-8'); ?>

4:Sicherheitshalber auch als Meta-Tag hinzufügen

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

JEDOCH

Es ist durchaus möglich, dass Sie einige dumme Zeichen in der Datenbank haben, wo etwas wie ISO-8859-1 schlecht auf UTF-8 jongliert wurde. In diesem Fall werden Sie Dinge wie £ bemerken wo Sie eigentlich wollen (Da UTF-8-Zeichen mehr Daten enthalten als ISO-8859-1-Zeichen, können diese zusätzlichen Daten zu einem zusätzlichen Zeichen werden, wenn Sie nicht aufpassen).

In diesem Fall ist es am besten, die Datenbank zu bereinigen (Sie könnten wahrscheinlich etwas wie UPDATE table SET field = REPLACE(field, '£', '£') tun für häufige "Fehler") und konvertieren Sie dann das gesamte Kaboodle in UTF-8 (wie oben beschrieben), um ein erneutes Auftreten des Problems zu vermeiden.