http://www.perlmonks.org?node_id=1085051


in reply to Need tipps for identifying utf-8 problems with Dancer and MySQL

Hi,

just a hint for debugging:

1) Get sure whether your MySQL installation stores in UTF-8. Take the table in question and do a show create table blabla\G in mysql client. When there is an alternative charset declared you can see it on the last line. Also check via show global variables like '%char%';.

2.) Check whether the MySQL connect option mysql_enable_utf8 is set to true if you have UTF-8 enabled.

3.) Insert a debug statement soon after fetching data from the database. If you can put your hand on a string then do the following:

my $utf8_flag = utf8::is_utf8($string) ? 1 : 0; print STDERR "For String '$string' UTF8-Flag is: $utf8_flag\n";

When your whole code is running in an UTF-8 environment than you should get a '1' there.

The output you get is a sign for double encoding. Look for possibilities where this kind of double encoding could happen. Rule of thumb. Don't do encoding until it comes to output at the boundaries.

Best regards
McA