sql >> Base de Datos >  >> RDS >> Mysql

Guardar caracteres especiales en la base de datos MySQL

@Pranav Hosangadi (gracias) cubre tres áreas para verificar la consistencia de la codificación. La siguiente solución se suma a eso. También puede valer la pena considerar (una variación de) la respuesta de @Soaice Mircea (gracias también) para algunos escenarios en los que esta respuesta no soluciona el problema, aunque esto no fue necesario cuando pude reproducir y encontrar una solución a su problema . La línea de pensamiento de @Pranav parece ser exitosa para este problema, ya que se trata de la consistencia de usar un conjunto de caracteres en todas partes en lugar de uno en particular.

cinco cosas que hacer:

  1. asegúrese de que el juego de caracteres y las tablas de la base de datos usen el mismo juego de caracteres en todo momento, inspeccione esto en phpmyadmin, por ejemplo, tenga en cuenta este juego de caracteres para usar a continuación

  2. use la función php header() con el conjunto de caracteres de la base de datos, por ejemplo:

    header('Content-Type: text/html; charset=latin1_swedish_ci');
  3. inserte la etiqueta meta en el encabezado html, por ejemplo:

    <meta http-equiv="content-type"
    content="text/html;charset=latin1_swedish_ci">
  4. agregue charset-accept en la etiqueta de formulario

    <form action=\"testsubmit.php\" method=\"post\" accept-charset=\"latin1_swedish_ci\">
  5. establece el conjunto de caracteres de la conexión mysql, por ejemplo:

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