blog.hekt.org

表示エンコードを EUC-JP から UTF-8 に

実はこのブログ、データベースの文字コードはずっと UTF-8 で、表示部分だけ EUC-JP となっていました。なんでこんな設定にしたのかは覚えてません。WordPress ME のデフォルトがそうだったのかな?

まあ、そのへんはどうでもいいので置いといて、例によって備忘録をかねた作業内容を。

管理画面の「設定」→「表示設定」から文字コードを変更するという、ただ一つの手順が、おそらく普通の場合の内容になるのですが、僕の場合、 ME から本家 2.5.1 にアップグレードする際に一つのミスを犯していて、おそらくそれがいくつかの作業を追加しなくてはならない原因となっていたようです。どんなミスかというと、本来 wp_config.php とリネームするべきファイル(wp_config-sample.php)を、wp_config..php (ピリオドが二つ)としてアップロードしていて、実際に使われた wp_config.php の内容は、WordPress ME 2.2.1 のものでした。

で、作業中にそれに気づき、新しいものに差し替えたのですが、そうすると今度は Warning: Invalid argument supplied for foreach() in /example/wp-includes/capabilities.php on line 31. というようなエラーコードが表示されるようになってしまい、また、管理画面にログインしようとしても同じファイルの19行目(capabilities.php on line 19.)がエラーを出しすようになってしまいました。

このエラーコードでググってみたところ、どうやら WordPress の文字コードを変更した場合によく見られるエラーのようで、「WordPress標準ガイドブック」サポートサイトの wp_cap.php を利用することで解決するらしいということを知りました。これは WordPress ME に向けたパッチのようですが、どうやら本家版 2.5.1 でも動くようで、エラーコードの問題がしっかり解決してくれました。(もちろん動作する保証はしません。自己責任で。)あとから判明したのですが、ちょっと面倒なことになりました。2.5.1 では使わないでください。

あと、2.5.1 にアップグレードしたあとの管理画面を見て、ところどころ日本語化されていなかったのが気になっていたのですが、どうやらそれもこのミスに起因するようです。修正した後はちゃんと日本語化されていました。

というわけで、UTF-8 になりました。データベースと表示部で違う文字コードを使うのは非効率な気がして修正したのですが、なんだか表示も速くなったような気がします。プラシーボ?