diff options
author | mkanat%bugzilla.org <> | 2006-11-19 00:54:59 +0100 |
---|---|---|
committer | mkanat%bugzilla.org <> | 2006-11-19 00:54:59 +0100 |
commit | 70e3b6464c5029187ec144aa12fc8b77c03f90c8 (patch) | |
tree | 2862806e625d31b84d6dae341d466a3beda8d071 | |
parent | 496a78f616b10c1c5c4bd0398021232e9bffa77e (diff) | |
download | bugzilla-70e3b6464c5029187ec144aa12fc8b77c03f90c8.tar.gz bugzilla-70e3b6464c5029187ec144aa12fc8b77c03f90c8.tar.xz |
Checkin fix for Bug 280633, which didn't work when the utf8 parameter was turned on.
-rw-r--r-- | Bugzilla.pm | 1 | ||||
-rwxr-xr-x | contrib/recode.pl | 14 |
2 files changed, 12 insertions, 3 deletions
diff --git a/Bugzilla.pm b/Bugzilla.pm index 5a9d23e14..7c52dd500 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 7db01dddf..10a4cbb44 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; |