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

codificação utf8 em Perl e MySql


Se cada ä/å/ö estiver sendo representado na saída por dois bytes, também é possível que você esteja codificando duplamente os caracteres. (Dado que a pergunta já mostra você fazendo $dbh->{'mysql_enable_utf8'} = 1; , suspeito que este seja o caso mais provável.) Outra possibilidade, dado que você está exibindo isso em uma página da Web, é que a página pode não estar especificando que o charset é UTF-8 em seu <head> e o navegador pode estar adivinhando incorretamente a codificação de caracteres que usa.

Observe atentamente a estrutura do seu aplicativo da Web, o sistema de modelos etc. para garantir que os valores sejam codificados apenas uma vez entre o momento em que são recuperados do banco de dados e o momento em que chegam ao navegador do usuário. Muitos frameworks/motores de modelo (como a combinação de Dancer e TT que eu normalmente uso) lidarão com a codificação de saída automaticamente se você os configurar corretamente, o que significa que os dados serão codificados duas vezes se forem codificados explicitamente antes da saída.