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

Speichern von Sonderzeichen in der MySQL-Datenbank

@Pranav Hosangadi (danke) deckt drei Bereiche ab, um die Konsistenz der Codierung zu überprüfen. Dazu kommt die folgende Lösung. Es kann auch eine Überlegung wert sein (eine Variation von) @Soaice Mirceas Antwort (auch danke) für einige Szenarien, in denen diese Antwort das Problem nicht behebt, obwohl dies nicht erforderlich war, als ich Ihr Problem reproduzieren und eine Lösung finden konnte . Die Denkweise von @Pranav scheint für dieses Problem erfolgreich zu sein, da es darum geht, überall einen Zeichensatz anstelle eines bestimmten zu verwenden.

Fünf Dinge zu tun:

  1. Stellen Sie sicher, dass der Datenbank-Zeichensatz und die Tabellen durchgehend den gleichen Zeichensatz verwenden, überprüfen Sie dies beispielsweise in phpmyadmin, notieren Sie und diesen Zeichensatz zur Verwendung unten

  2. Verwenden Sie die Funktion php header() mit Datenbankzeichensatz, z. B.:

    header('Content-Type: text/html; charset=latin1_swedish_ci');
  3. Meta-Tag in HTML-Header einfügen, z. B.:

    <meta http-equiv="content-type"
    content="text/html;charset=latin1_swedish_ci">
  4. fügen Sie charset-accept in das Formular-Tag

    ein
    <form action=\"testsubmit.php\" method=\"post\" accept-charset=\"latin1_swedish_ci\">
  5. Zeichensatz der MySQL-Verbindung festlegen, z. B.:

    $con = mysql_connect("localhost","test","test");      
    mysql_set_charset ( "latin1_swedish_ci", $con );