Como converter estas estranhas personagens? (ë, Ã, ì, ù, Ã)
A minha página mostra frequentemente coisas como ë, Ã, ì, ù, à no lugar de caracteres normais.
Utilizo utf8 para página de cabeçalho e codificação MySQL. Como é que isto acontece?
46
3
Estes são caracteres codificados em utf-8. Utilizar utf8_decode() para os converter para caracteres normais ISO-8859-1.
Se vir esses caracteres, provavelmente não especificar correctamente a codificação dos caracteres. Porque esses caracteres são o resultado quando uma cadeia de caracteres multi-byte UTF-8 é interpretada com uma codificação de byte único como ISO 8859-1 ou Windows-1252.
Neste caso
ë
poderia ser codificado com 0xC3 0xAB que representa o carácter Unicodeë
(U+00EB) em UTF-8.Embora o
utf8_decode
seja uma solução útil, prefiro corrigir os erros de codificação na própria mesa. Na minha opinião, é melhor corrigir os maus caracteres em si do que fazer "hacks" no código. Basta fazer um **replace
*** no campo sobre a mesa. Para corrigir os caracteres mal codificados de OP:Onde
<table>
é o nome da tabela mysql e `` é o nome da coluna na tabela. Aqui está uma lista de verificação muito boa para os caracteres tipicamente mal codificados do windows-1252 a utf-8 -> Debugging Chart Mapping Windows-1252 Characters to UTF-8 Bytes to Latin-1 Characters.**Lembre-se de fazer backup da sua mesa antes de tentar substituir quaisquer caracteres por SQL***!
[Sei que esta é uma resposta a uma pergunta muito antiga, mas estava de novo a enfrentar a questão. Algumas máquinas de janelas antigas não codificaram o texto correcto antes de o inserir na tabela utf8_general_ci colada.*]