Mysql
 sql >> Base de données >  >> RDS >> Mysql

Enregistrement de caractères spéciaux dans la base de données MySQL

@Pranav Hosangadi (merci) couvre trois domaines pour vérifier la cohérence de l'encodage. La solution suivante ajoute à cela. Cela peut également valoir la peine d'envisager (une variante de) la réponse de @ Soaice Mircea (merci également) pour certains scénarios dans lesquels cette réponse ne résout pas le problème bien que cela n'ait pas été nécessaire lorsque j'ai pu reproduire et trouver une solution à votre problème . La ligne de pensée de @ Pranav semble réussir à résoudre ce problème car il s'agit de la cohérence de l'utilisation d'un jeu de caractères partout plutôt que d'un jeu particulier.

cinq choses à faire :

  1. assurez-vous que le jeu de caractères de la base de données et les tables utilisent le même jeu de caractères partout, inspectez-le dans phpmyadmin par exemple, notez et ce jeu de caractères à utiliser ci-dessous

  2. utilisez la fonction php header() avec le jeu de caractères de la base de données, par exemple :

    header('Content-Type: text/html; charset=latin1_swedish_ci');
  3. insérer une balise méta dans l'en-tête html, par exemple :

    <meta http-equiv="content-type"
    content="text/html;charset=latin1_swedish_ci">
  4. ajouter charset-accept dans la balise de formulaire

    <form action=\"testsubmit.php\" method=\"post\" accept-charset=\"latin1_swedish_ci\">
  5. définir le jeu de caractères de la connexion mysql, par exemple :

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