WordPressをEUCからUTFへ
WordPressのデータをEUCからUTFへ移行したんだけど、うまく表示はしたものの、管理画面でログインすると、capabilities.phpのエラーが沢山出て、管理画面に入れないし、投稿も出来なくなってしまいました。
文字化けは、MySQLの文字セットや設定をUTFに指定することで、解消したのですが、今回のエラーの解決には1日費やしました。
調べtみると、EUCでは漢字1文字が2byteに対し、UTFー8では3byteになっていて、文字列情報をserialize化されてMySQLのデータベースに格納されていること分りました。
ですので、この文字と文字列を計算したバイト数の整合がとれず、エラーとなっていたようです。
解決策としては、
WordPressのMySQLのデータを開きます。
wpーoptionのテーブルを開き、option_name=”wp_user_roles”を探します
その中のデータを編集します。
この中に、”管理人”の箇所を見つけ、直前にs:6:になっているはずなので、この6を9に変更します。
漢字1文字がUTF8では3byteでしたから、3×3=9と言うことです。
その他にも、作者や協力者の箇所があるので、同じように修正します。
これで保存すると、ログイン出来るようになるはずです。
phpmyadmin等を利用すると簡単です