Mysql
 sql >> Datenbank >  >> RDS >> Mysql

utf8-Kodierung in Perl und MySql

Wenn jedes ä/å/ö in der Ausgabe durch zwei Bytes dargestellt wird, ist es auch möglich, dass Sie die Zeichen doppelt kodieren. (Da die Frage bereits zeigt, dass Sie $dbh->{'mysql_enable_utf8'} = 1; ausführen , ich vermute, dass dies der wahrscheinlichste Fall ist.) Angesichts der Tatsache, dass Sie dies auf einer Webseite anzeigen, besteht eine andere Möglichkeit darin, dass die Seite in ihrem <head> und der Browser könnte die verwendete Zeichenkodierung falsch einschätzen.

Sehen Sie sich Ihr Webapp-Framework, Templating-System usw. genau an, um sicherzustellen, dass die Werte zwischen dem Abrufen aus der Datenbank und dem Erreichen des Browsers des Benutzers nur einmal codiert werden. Viele Frameworks/Template-Engines (wie die Kombination aus Dancer und TT, die ich normalerweise verwende) verarbeiten die Ausgabekodierung automatisch, wenn Sie sie richtig konfigurieren, was bedeutet, dass die Daten doppelt kodiert werden, wenn sie vor der Ausgabe explizit kodiert werden.