phpMyAdmin
 sql >> Base de Dados >  >> Database Tools >> phpMyAdmin

Armazenando dados MySQL em fonte curda?


O que aconteceu:
  • você tinha dados codificados em utf8 (bom)
  • SET NAMES latin1 estava em vigor (padrão, mas errado)
  • a coluna foi declarada CHARACTER SET latin1 (padrão, mas errado)

Conforme você INSERTed os dados, eles foram convertidos para latin1, que não possui valores para caracteres árabes (curdo/farsi/etc), então pontos de interrogação os substituíram.

A cura (para futuras INSERTs ):
  • dados codificados em utf8 (bom)
  • mysqli_set_charset('utf8') (ou o que seu cliente precisa para estabelecer o CHARACTER SET )
  • verifique se as colunas e/ou tabelas padrão são CHARACTER SET utf8
  • Se você estiver exibindo em uma página da Web, <meta...utf8> deve estar próximo ao topo.

A discussão acima é sobre CHARACTER SET , a codificação de caracteres. Agora, uma dica sobre COLLATION , que é usado para comparar e classificar.

Para verificar se os dados estão armazenados corretamente, faça SELECT col, HEX(col)... .
ه‌رچوون deve voltar D987E2808CD8B1DA86D988D988D986
Caracteres árabes em utf8 têm hexadecimal de D8xx ou D9xx.

(utf8mb4 funciona tão bem quanto utf8; ou funciona para o árabe.)

Más notícias:Os dados que foram inseridos e transformados em '???' não pode ser recuperado.