Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Salvando caracteres especiais no banco de dados MySQL


@Pranav Hosangadi (obrigado) abrange três áreas para verificar a consistência da codificação. A solução a seguir adiciona a isso. Também pode valer a pena considerar (uma variação de) a resposta do @Soaice Mircea (obrigado também) para alguns cenários em que essa resposta não corrige o problema, embora isso não tenha sido necessário quando consegui reproduzir e encontrar uma solução para o seu problema . A linha de pensamento do @Pranav parece ser bem-sucedida para esse problema, pois trata-se da consistência de usar um conjunto de caracteres em todos os lugares, em vez de um em particular.

cinco coisas para fazer:

  1. certifique-se de que o conjunto de caracteres e as tabelas do banco de dados usem o mesmo conjunto de caracteres, inspecione isso no phpmyadmin, por exemplo, observe e este conjunto de caracteres para uso abaixo

  2. use a função php header() com o conjunto de caracteres do banco de dados, por exemplo:
    header('Content-Type: text/html; charset=latin1_swedish_ci');

  3. insira meta tag no cabeçalho html, por exemplo:
    <meta http-equiv="content-type"
    content="text/html;charset=latin1_swedish_ci">

  4. adicione charset-accept na tag de formulário
    <form action=\"testsubmit.php\" method=\"post\" accept-charset=\"latin1_swedish_ci\">

  5. definir charset da conexão mysql, por exemplo:
    $con = mysql_connect("localhost","test","test");      
    mysql_set_charset ( "latin1_swedish_ci", $con );