Mysql
 sql >> Base de données >  >> RDS >> Mysql

encodage utf8 en Perl et MySql

Si chaque ä/å/ö est représenté dans la sortie par deux octets, il est également possible que vous encodiez les caractères en double. (Étant donné que la question vous montre déjà en train de faire $dbh->{'mysql_enable_utf8'} = 1; , je soupçonne que c'est le cas le plus probable.) Une autre possibilité, étant donné que vous affichez ceci sur une page Web, est que la page ne spécifie peut-être pas que le jeu de caractères est UTF-8 dans son <head> et le navigateur pourrait deviner de manière incorrecte l'encodage de caractères qu'il utilise.

Examinez de près votre infrastructure d'application Web, votre système de modèles, etc. pour vous assurer que les valeurs ne sont encodées qu'une seule fois entre le moment où elles sont extraites de la base de données et le moment où elles atteignent le navigateur de l'utilisateur. De nombreux frameworks/moteurs de modèles (tels que la combinaison de Dancer et TT que j'utilise normalement) géreront automatiquement l'encodage de sortie si vous les configurez correctement, ce qui signifie que les données seront encodées en double si elles sont explicitement encodées avant d'être sorties. /P>