エントリー本文
Movable Type で「~」が「?」に文字化けする事象や日本語のタグが合算できない不具合を解消する
Category:[トラブルシューティング]
Tag:[MovableType, MySQL, phpMyAdmin, TroubleShooting]
Movable Type で MySQL 5を利用している際に、
- ブログ本文などに含まれる「~」という文字などが「?」に文字化けする
- 日本語のタグが合算できない(Aブログ記事とBブログ記事に同じ日本語のタグを付与した場合、タグ一覧などで2件とならず、それぞれ1件として表示される)
といった不具合を解消する方法を紹介します。
すでに多くのサイトで紹介されているので目新しい情報ではありませんがとりあえず。
1.原因
タイトルの不具合が生じる原因は、対象テーブルのカラムの照合順序が「ujis_japanese_ci」になっているためのようです。この照合順序を「utf8_general_ci」にすることで解消しているようです。
ちなみに、「照合順序」とはデータベースから select する際のルールを示すもののようで、
- ujis/utf8:文字コード
- japanese/general:照合形式
- ci/cs:大文字・小文字を区別する・しない
という意味があります。
また、「大文字・小文字の区別」は英文字だけでなく、全角・半角や日本語の濁音・清音も含まれるようです(どのように区別されるかは、japanese/general の設定に依存)。
2.対策
以下、phpMyAdmin を使って「ujis_japanese_ci」を「utf8_general_ci」にする設定を紹介します。phpMyAdmin ログインした状態から説明します。
2.1 ブログ記事の文字化けを解消する場合
左メニューより mt_entry テーブルをクリック。

次の画面でmt_entry テーブルのフィールド一覧が表示されるので、一番下の「すべてチェックする」をクリック。これですべてのテーブルのチェックボックスがチェックされます。

「すべてチェックする」の右側にある鉛筆マークのアイコンをクリック。

照合順序に「ujis_japanese_ci」が表示されているものについて「utf8_general_ci」に変更し、「保存」をクリック。照合順序が選択されていないものは変更しないでください。

以上です。なお、一度文字化けしてしまったものについては手作業で修正が必要なようです。
2.2 日本語の連結ができない不具合を解消する場合
mt_tag テーブルについて、2.1と同様の変更を行います。

こちらも、変更後に追加したタグについては合算されますが、既存のタグは合算されないようです。
2.3 その他
コメントの文字化けを変更する場合は mt_comment、トラックバックは mt_tbping / mt_trackback ですが、一通りやっておくとよいでしょう。
3.参考サイト
以下です。ありがとうございました。
≫ MTの文字化け問題 from SOH-WEB
「~」が「?」になってしまう・・・。 その他にも表示できない文字が結... [続きを読む]
≫ MT5バグ『タグが統合されない』 from 気ままなイラスト・WEBのサイト『蒼極の月』
MT5.01を使ってのサイト作成時、最後に気付いたバグ。タグが統合されない。具体的には↓の画像の状態になる。 もっと言えば統合だけじゃなくて、機能もして... [続きを読む]
≫ エックスサーバでSQL4→5にしてMT4→5にしたけど文字化けした↓ from ブログ-箱庭.net
解決方法を探している方がこのページにヒットしたら、ごめん。 きっと文字コードがだ... [続きを読む]
≫ ブログをリニューアルしました。[続報] from 日記
先日サーバー移転をしてMTのバージョンを最新版にしてリニューアルしたわけですけど、その後ちょいちょい困ったことがあったりしたので、備忘録がてら書いておきま... [続きを読む]
yujiroさん
いつもお世話になっております。
このトピックスとちょっと違う系統のご質問なのですが、お教えいただければ感謝です。
当方、小粋空間さんのテンプレートを気に入り、MTにてブログを立ち上げていたのですが、先ほどMT4.2環境で(さくらレンタルサーバー上)SQLのバージョンを4.1→5.1にアップしました。
DBはローカルにバックアップ、バージョンアップ後にDBを戻しています。
これにより、サーバーNameも変わったのですが、今まで作成したコンテンツは、htmlもphpnのコンテンツも見られます。
ただし、管理者モードでアクセスしようとすると、初期インストール後と同様の「初めてのブログを作る」「DBを初期化する」とのメッセージが出て、管理者登録を迫られてしまいます。(とすると、いまアップしている500のコンテンツが無に帰すということ(泣))
いくつかのサイトを事例に作業を進めたのですが・・・このような事例は無く、どのように対処すべきか、お手数ですがご教授いただけると助かります。
要はMTとDBが関連を持たず、再構築済みのスタティックコンテンツのみを見れているということ!?なんでしょうか。
MTの仲の、DBへのパスを書き換えれば???とは思うのですが、どこをリネームすればよいかわからずでして・・・。厚かましいお願いで恐縮ですが何卒よろしくお願いいたします。
K26
Yujiroさま
K26です。
上に記述した質問ですが、なんとか自己解決いたしました。
小粋空間内を探すと、数多くのFixのためのヒントがあり、それらが奏功しました。本当にすばらしいサイトだと思います。
ありがとうございました!
>K26さん
こんにちは。
ご返事遅くなってすいません&フォローできずに申し訳ありません。
ご質問の件、無事に直ってよかったです。
さしつかえなければ直した方法もご連絡いただければ幸いです。
それではよろしくお願い致します。
この問題かなり長い間悩まされていたので、解決して目からうろこです。
情報ありがとうございました。
>はまちゅぅさん
こんばんは。
ご連絡ありがとうございました。
お役に立ったようでなによりです。
ではでは!
先日初めてMT5をインストールしたのですが、私もこの問題に悩まされ続けていました。
特にお客様がよく「~」を使う方だったので、MT4に戻したほうがいいのでは……と思っていたところ、こちらに辿りつく事が出来ました。
本当にありがとうございます!
今後もこちらのサイトを参考にさせて頂きます。
タグが統合しなくてずっと苦労していました。
こんなにアッサリ治るとは・・・・目から鱗です。
これからも参考にさせて頂きます。
>ゴッツさん
こんばんは。
お役に立てたようでよかったです。
ではでは!
