Problemas de codificação de caracteres de decodificação no armazenamento de banco de dados
Uma situação intrigante surge ao migrar os dados de um site antigo para um novo script. Os caracteres armazenados, originalmente renderizados corretamente pelo script antigo, aparecem distorcidos no novo. Após investigação, descobre-se que os caracteres estão armazenados em uma codificação incomum.
O script antigo usa um mecanismo de banco de dados chamado TUBADBENGINE, que não apresenta nenhuma característica peculiar. No entanto, quando dados contendo caracteres persas são inseridos usando o script antigo, eles são armazenados como caracteres de aparência estranha no banco de dados.
Por outro lado, quando os dados são inseridos diretamente no banco de dados usando SQL, o caracteres corretos são preservados. No entanto, a tentativa de recuperar esses dados usando o novo script resulta em caracteres distorcidos.
O culpado, conforme revelado na resposta, é a codificação de caracteres usada para a conexão do banco de dados. Neste caso, a conexão com o banco de dados foi definida como latin1, que é uma escolha inadequada para caracteres persas. Como resultado, os caracteres foram convertidos incorretamente ao serem armazenados no banco de dados.
Para resolver o problema, precisamos converter os dados no banco de dados para a codificação de caracteres correta. Uma solução possível fornecida na resposta é:
SELECT CONVERT(BINARY CONVERT(field_name USING latin1) USING utf8) FROM table_name
Esta consulta pode ser usada para recuperar os dados usando a codificação de caracteres correta . Podemos então usar esse resultado como uma instrução UPDATE para corrigir permanentemente os dados no banco de dados.
Depois que os dados forem codificados corretamente, o novo script deverá ser capaz de recuperá-los e exibi-los corretamente.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3