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

Existem símbolos como  e assim por diante no banco de dados, o que fazer?


Depende do que realmente é o problema...

Se é que esses caracteres são supostos para estar lá (como "Mañana" em espanhol), você precisará garantir que tudo esteja em UTF-8 ... a melhor maneira é:

1:verifique se as tabelas do banco de dados estão na codificação "utf-8" (se não, converta-as para utf-8)

2:como Martin observou, verifique se o conector do banco de dados é utf-8 usando algo como:
mysql_set_charset('utf8'); //note that MySQL uses no hyphen here

3:verifique se o documento é utf-8 (você pode adicionar um cabeçalho na parte superior)
<?php header('Content-type:text/html;charset=utf-8'); ?>

4:apenas para garantir, adicione-o como uma meta tag também
<meta http-equiv="content-type" content="text/html;charset=utf-8" />

ENTÃO

É bem possível que você tenha alguns caracteres duff no banco de dados onde algo como ISO-8859-1 tenha sido manipulado para UTF-8, mal. Nesse caso, você notará coisas como £ onde o que você realmente quer é £ (como os caracteres UTF-8 contêm mais dados do que os caracteres ISO-8859-1, esses dados extras podem se tornar um caractere adicional se você não tomar cuidado).

Nesse caso, sua melhor aposta é limpar o banco de dados (você provavelmente poderia fazer algo como UPDATE table SET field = REPLACE(field, '£', '£') para "erros" comuns e, em seguida, converta todo o kaboodle para UTF-8 (conforme descrito acima) para evitar a recorrência do problema.