Mysql
 sql >> Database >  >> RDS >> Mysql

codifica utf8 in Perl e MySql

Se ogni ä/å/ö viene rappresentato nell'output da due byte, è anche possibile che tu stia codificando due volte i caratteri. (Dato che la domanda mostra già che stai facendo $dbh->{'mysql_enable_utf8'} = 1; , sospetto che questo sia il caso più probabile.) Un'altra possibilità, dato che lo stai visualizzando su una pagina web, è che la pagina potrebbe non specificare che il set di caratteri è UTF-8 nel suo <head> e il browser potrebbe indovinare in modo errato la codifica dei caratteri che utilizza.

Dai un'occhiata da vicino al framework dell'app web, al sistema di modelli, ecc. per assicurarti che i valori vengano codificati solo una volta tra quando vengono recuperati dal database e quando raggiungono il browser dell'utente. Molti framework/motori di modelli (come la combinazione di Dancer e TT che utilizzo normalmente) gestiranno automaticamente la codifica dell'output se li configuri correttamente, il che significa che i dati verranno doppiamente codificati se codificati in modo esplicito prima dell'output.