From: mkanat%bugzilla.org <> Date: Sat, 18 Nov 2006 23:54:59 +0000 (+0000) Subject: Checkin fix for Bug 280633, which didn't work when the utf8 parameter was turned on. X-Git-Tag: bugzilla-2.23.4~207 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70e3b6464c5029187ec144aa12fc8b77c03f90c8;p=thirdparty%2Fbugzilla.git Checkin fix for Bug 280633, which didn't work when the utf8 parameter was turned on. --- diff --git a/Bugzilla.pm b/Bugzilla.pm index 5a9d23e14d..7c52dd5002 100644 --- a/Bugzilla.pm +++ b/Bugzilla.pm @@ -53,6 +53,7 @@ our $_request_cache = {}; use constant SHUTDOWNHTML_EXEMPT => [ 'editparams.cgi', 'checksetup.pl', + 'recode.pl', ]; # Non-cgi scripts that should silently exit. diff --git a/contrib/recode.pl b/contrib/recode.pl index 7db01dddfd..10a4cbb44b 100755 --- a/contrib/recode.pl +++ b/contrib/recode.pl @@ -174,9 +174,17 @@ if (exists $switch{'overrides'}) { my $dbh = Bugzilla->dbh; -# Make the database give us raw bytes. -$dbh->do('SET character_set_results = NULL') - if $dbh->isa('Bugzilla::DB::Mysql'); +if ($dbh->isa('Bugzilla::DB::Mysql')) { + # Get the actual current encoding of the DB. + my $collation_data = $dbh->selectrow_arrayref( + "SHOW VARIABLES LIKE 'character_set_database'"); + my $db_charset = $collation_data->[1]; + # Set our connection encoding to *that* encoding, so that MySQL + # correctly accepts our changes. + $dbh->do("SET NAMES $db_charset"); + # Make the database give us raw bytes. + $dbh->do('SET character_set_results = NULL') +} $dbh->begin_work;