WordPress(というかMySQL) 文字化け対策

非常に今更なのだが、このBlogシステム、一部文字が”?”になってしまうのだ。
エントリでもコメントでも同様。というか今まで化ける文字が出ていないだけで、見える部分のすべてが同じように化けるのだ。

化ける、という状況自体はかなり前から知っていた。タイミング的には、Wordpressのバージョンが上がってサーバのデータベースが追いつかなくなり、データベースのバージョンアップをしたタイミング。
つまり、今使っているMySQL 5.1が悪いことは明白なんである。実際、化けた文字をデータベース直接いじって直そうとしてもワーニングが出て直らないし。

しかし、どう直したらよいのか分からず、そのうち情報がそろうだろ、と放置しておったのだ。
でも、よ~殿の名前など毎回化けてあまりに失礼であるので、いっちょ気合いで直すことにしたぞ。

ま、毎度のことだが記せば簡単なんである。でも原因発見までには3時間かかったのだが。

文字化けなんざだいたい文字コード不一致で起こるわけである。
この現象が出てから何度もWordpressのバージョンアップがかかっているが一向に直らない、ということはやはりデータベースのせいなのだろう。・・・いや上記の通りそれは実証できているけども。
しかしだ、Wordpressの設定はすべてUTF-8にしており、MySQL 4の時に問題がなかったことからWordpress側に間違いはなく、MySQLの設定をutf8-general-ciにしているのにこのていたらく。

そんでいつものようにGoogle大明神に伺いをたてる。
いつもはユーザWebサイトの情報が解決に結びつくことが多いのだが、今回はホストのさくらにあった情報がもっとも良いヒントだった。
それは『MySQL 5ではテーブルごとにエンコードが指定できる』という記述。
ほう、つまり大本の設定をutf8-general-ciにしていてもテーブルごとにEUCとかになっているかもしれないわけだな。

んで、チェック。

これは直した後なんだが、にゃんとすべてのテーブルで照合順序がujis-japanese-ciになっており、utf8-general-ciになっていたのはサーバのmysql103.sakura.ne.jpとデータベースのpotechのみ。
そりゃいかにもダメっぽいじゃないか。そんでこのとおり、すべてutf8-general-ciに修正。

で、データベース直接編集でひとまず”よ~”殿の名前が”よ?”になっているその?を波ダッシュに変更してみるが、やっぱりワーニングが出て直らない。ワーニングメッセージ自体、”よ~”の部分がなんか英数になってしまっている。
さて困った、ほかはどこなんだとくまなく当たってみると、

おおぅ、テーブルだけじゃなくフィールドごとに別個設定できてしまうのじゃないか。
ほんで、全フィールドを確認してujis-japanese-ciになっているものをutf8-general-ciに修正。ごく一部はutf8-general-ciになっていたが、ほとんどがujis-japanese-ciだった。

というわけで、全部utf8-general-ciにしたところ無事”よ?”が”よ~”になった。やったねついに。

なお、エントリやコメントのほかの文字化け”?”については、探し出すのが大変だし数も多くなってしまったので放置でご容赦を。
今後はあらゆる文字が使えるはずなので使ったって下されませ。

カテゴリー: ガジェット パーマリンク

WordPress(というかMySQL) 文字化け対策 への4件のフィードバック

  1. よ~ のコメント:

    おぉ~感謝いたします。
    先日も名前を「ー」で通しますと書いた直後「~」
    使ってました(笑)

    3時間。。。お手数おかけしました。。。

    この画面は例の新PCですか???
    ところで、光華の件でも大変お世話になりました。
    3往復もされていたんですか!ワタシも最初からこうすれば良かったのにというのは多々あります。
    珍珠奶茶のお店は光華エリアですか???

  2. Pote のコメント:

    よ~様こんばんは。

    > 3時間。。。お手数おかけしました。。。

    いえいえとんでもない、私自身エントリ内の文字化けに悩んで、いつか早急に直さねばと思っていたのに引きずっていたので、良いきっかけを戴きました。

    > この画面は例の新PCですか???

    はい、完全にセットアップ完了しまして、壊れかけの901は引退いたしました。
    WindowsもLinuxも問題なく快適に動作しております。ありがとうございました。

    > 珍珠奶茶のお店は光華エリアですか

    はい、捷運站に向かう道、以前は『摸乳巷』だったところです。
    移住間もない頃、南港でよく使っていた珍珠奶茶もNTD15だったので、ちょっと懐かしい値段です。
    でもこの店は開店セールが終わるとNTD30になってしまうのですが。

  3. よ~ のコメント:

    お~、ちゃんと出ているw
    おはようございます。

    901は大活躍の末の勇退というところでしょうか。
    こちらのブログでも数々の活躍を拝見しました!

    摸乳巷・・・つまり忠孝新生駅へ向かう細路地があった場所って事でしょうか???
    ちなみに船橋の某ショッピングモールにあるタピオカミルクティー屋では1年以上「黒糖パールミルクティーが新発売お試し価格」で199円で売ってます(笑)

  4. Pote のコメント:

    よ~様こんばんは。

    > 901は大活躍の末の勇退というところでしょうか。

    それはもう、あれだけ働いてくれればそれはもうすばらしき大活躍です。
    今まで生き抜いたほぼすべての収入をアレが稼ぎ出しましたし、Linux関連の業務を捌けているのも701で手をつけ901で修練した成果であります。
    あとは、予備役として退いて戴くことにいたしました。

    > 摸乳巷・・・つまり忠孝新生駅へ向かう細路地があった場所って事でしょうか

    たぶんそれです。裾上げ屋・PC修理屋・エロディスク屋が並んでいたところです。

    > 1年以上「黒糖パールミルクティーが新発売お試し価格」で199円で売ってます

    台湾サイズなら、日本では破格かもしれないですね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です