機種依存文字の文字化けについて

あっというまに6月になってしまいました^^;

今年ももうちょっとで半分。今日は良いお天気でお昼近所を買い物がてら散策していると、ベランダがお布団や洗濯ものでいっぱいです。
ここのところ雨続きでしたからね。皆さん洗濯物がたまっていたんでしょうね。
もちろん我が家も本日洗濯しました!!

ところで本日のメモは・・・現在MT構築でちょっと気になったこと。

「?」「ー」など、機種依存文字をMTのブログ内で使用したときに、
実際に構築してできたブログ記事内で「??」など文字化けしてしまうという現象があります。
これは(たぶん)当ブログでは大丈夫なのですが、実際に設置させていただいたお客さまからのご質問でした。

原因はいろいろありそうですが、一番可能性が高そうな原因と解決方法をメモしておきます。

真っ先に考えられる原因はやはり「文字コードの違い」だと思います。
MTは「UTF-8」で構築されているので、それ以外の部分もできるだけUTF-8で統一することが望ましいと思います。(一番間違いがないかと)

MTの管理画面やブログ記事全体が全部文字化けしてしまうのであれば、
完全に文字コードの相違が原因だと思いますが、ちょっと面倒そうなのが「機種依存文字だけ文字化けする」ケースではないでしょうか?

「機種依存文字」は「環境依存文字」とも言われています。
たとえば「?」「?」「?」とか。。
Web屋としては「機種依存文字は極力使わない!!」と頭に叩き込まれている部分があるので気をつけて使わないようにしていますが、一般のお客様のなかには「どうしても使いたい」と仰る場合もあります。

実際に当方で書いている当ブログでテストしてみると全く問題ないので、
出来ないはずはないわけで・・・。
ということを踏まえたうえで、解決策を考えてみました。

■MySQL(データベース)の文字コードを確認する【UTF-8を使用する】

私自身いくつかレンタルサーバーを借りていますが、会社によってデータベースの基本文字コード設定にも違いがあります。
たとえばエックスサーバーはVer.4xはEUC-JPですが、Ver.5を選択すると

  • EUC-JP
  • UTF-8
  • Shift-JIS
  • Binary

から選択することが可能です。
文字化けする場合は、まずMySQLの基本文字コードの確認が必要です。

■php MyAdminでデータベースの接続照合順序を確認する

実際にUTF-8でブログを構築していても、MySQLのデータベースの照合順序の設定が正確でないために文字化けするケースもあります。

もし「ujis_japanese_ci」になっていたら、「UTF-8_Unicode ci」に変更してみてください。
特に日本語表記が入ってくる「mt_entry」「mt_tag」「mt_comment」「mt_trackback」などのテーブル部分をそれぞれ開いて念のため確認してみた方が良いみたいです。
(この部分だけ「ujis_japanese_ci」だとやっぱり文字化けするようです)

参考にさせていただいたのは「MT4で「?」「」が文字化け&日本語タグクラウド重複【解決編】」
この方法で文字化けを解消できている方もいるようですが、ごく稀にNGな方もいるようですので、実際にデータベースの接続照合順序を変更する前には念のためバックアップをおススメします。

一応自分のブログでもテストしてみたところ大丈夫でした。
この方法でデータベースの初期化などしなくても文字化けの解消ができそうです。

それにしても、ちょっと面倒なのは「すでに文字化けしているブログ記事は修正できない」部分でしょうか。
これに関しては再構築するだけでは直らないようですので、個別に見つけて直していくしかないようです・・・
うーん。早めの対応が必要ですね。



コメントを残す

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