前に「MTとMySQL4.1の組み合わせで不具合」ってエントリーで、MT と MySQL4.1 の組み合わせで、2バイトが文字化けしてしまって、結局 lib/MT/ObjectDriver/DBI 内にあるファイル mysql.pm にて強引に文字コードを UTF-8 と指定して解決したってのがあったんだけど、今回 MT 3.17 にアップグレードしたら、管理画面が文字化けしやがって、ブルータスお前もか!って状態に陥った。(ちなみに、このサイトじゃなくて別のサイトの話ね。このサイトは問題なくアップグレード出来た)
今回、シックスアパートのアナウンスで、MySQL 4.1を正式にサポートいたします。
ってなってたんで、何も考えずにドカッって上書きしたのがいけなかった。うへぇって感じで、MT3.17 の mysql.pm を開いて 52 行目以降の当該部分を見てみたら下記のようになってた。
$DBI::errstr));
if ($cfg->SQLSetNames && (my $c = lc $cfg->PublishCharset)) {
my %Charset = ('utf-8' => 'utf8', 'shift_jis' => 'sjis', 'euc-jp' => 'ujis');
my $c = $Charset{$c} ? $Charset{$c} : $c;
$driver->{dbh}->do("SET NAMES " . $c);
}
$driver;
HTML は静的生成だったんで大丈夫なんだけど、再構築したら文字化けするのは目に見えてる。しょうがないんで、とりあえず前回と同じく下記のように変更したら無事解決。
$DBI::errstr));
$driver->{dbh}->do("SET NAMES utf8");
$driver;
つーか、新規インストールであれば恐らく問題なかったんだろうけど、これで大丈夫なのか激しく不安:-(
Comments