You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Shared/lib/Dancer/Plugin/Database/Core.pm, appears to be setting mysql_enable_utf8 which only provides 3-byte UTF-8:
# If the app is configured to use UTF-8, the user will want text from the
# database in UTF-8 to Just Work, so if we know how to make that happen, do
# so, unless they've set the auto_utf8 plugin setting to a false value.
my $app_charset = $settings->{charset} || "";
my $auto_utf8 = exists $settings->{auto_utf8} ? $settings->{auto_utf8} : 1;
if (lc $app_charset eq 'utf-8' && $auto_utf8) {
# The option to pass to the DBI->connect call depends on the driver:
my %param_for_driver = (
SQLite => 'sqlite_unicode',
mysql => 'mysql_enable_utf8', #################################################
Pg => 'pg_enable_utf8',
);
my $param = $param_for_driver{$driver};
if ($param && !$settings->{dbi_params}{$param}) {
$logger->(
debug => "Adding $param to DBI connection params"
. " to enable UTF-8 support"
);
$settings->{dbi_params}{$param} = 1;
}
}
and to add insult to injury, adds a warning if we override to mysql_enable_utf8mb4 without disabling auto_utf8, and on top of that, it doesn't Just Work as advertised, it Just Works but not Always 😅
The text was updated successfully, but these errors were encountered:
According to:
https://metacpan.org/pod/DBD::mysql#mysql_enable_utf8mb4
DBD::mysql requires setting
mysql_enable_utf8mb4
to support 4-byte UTF-8.MySQL is a bit quirky in that
utf8
is not real UTF-8. To get real UTF-8, you needutf8mb4
:https://mathiasbynens.be/notes/mysql-utf8mb4
Shared/lib/Dancer/Plugin/Database/Core.pm, appears to be setting
mysql_enable_utf8
which only provides 3-byte UTF-8:and to add insult to injury, adds a warning if we override to
mysql_enable_utf8mb4
without disablingauto_utf8
, and on top of that, it doesn't Just Work as advertised, it Just Works but not Always 😅The text was updated successfully, but these errors were encountered: