エントリー本文
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.参考サイト
以下です。ありがとうございました。
- ブログ記事タイトルを改行できるようにする
- MTEntries タグ + sort_by モディファイアでブログ記事がソートされない件
- 日本語ドメインによると EntryTrackbackData タグの不具合
- Movable Type 5.0 の Include タグと append モディファイア・prepend モディファイアの組み合わせについて
- Movable Type 5.0で更新通知が送信できない不具合と対処
- Movable Type 5.0 のスケジュールタスクでエラーになる件について
- Movable Type 4.261 でのダイナミックパブリッシングエラーについて
- Movable Type 4.2 のダイナミックパブリッシングでプロフィール画像関連のテンプレートタグが動作しない不具合について
- Movable Type 4.26 のスケジュールタスク実行時にエラーが発生する現象について
- Movable Type 4.25 における MTEntries タグの category モディファイアの不具合について
- Movable Type の再構築エラー(コンテキスト外での利用)を解析方法
- Movable Type の管理画面に「IP禁止リスト」を表示する
- MTMultiBlog タグブロック内での MTInclude タグの入れ子について(続き)
- Movable Type 4 の再構築で「Can't call method "id" on unblessed reference」が発生する問題について
- MTMultiBlog タグブロック内での MTInclude タグの入れ子について
- Movable Type 4.21 でファイルのアップロードで「不正な要求です。文字コードUTF-8に含まれない文字データを送信しています。」というエラーになる問題について
- Movable Type 4 でテンプレート編集画面の内容が途中から消失する問題の対処
- Windows XP のローカルサーバ環境(ジャンクション利用)への Movable Type 4.1 のインストールで「mt-staticがみつかりません」という警告が表示される場合の対処
- Movable Type でサブドメインを利用する場合の設定
- Movable Type 4.1 でコメント投稿者情報が保存されない不具合について
- Movable Type(MT)テンプレート
- dTree プラグイン for WordPress v0.3
- Movable Type プラグイン一覧(MT4対応)
- Movable Type 4.21 でファイルのアップロードで「不正な要求です。文字コードUTF-8に含まれない文字データを送信しています。」というエラーになる問題について
- Movable Type プラグイン一覧
- カテゴリーアーカイブで全サブカテゴリーリストを表示
- 検索結果画面で検索文字列が文字化けする不具合を解消する
- Movable Type で再構築エラーになる場合の原因と対処
- シナモンの
- .htaccessによる文字化け対策
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に戻したほうがいいのでは……と思っていたところ、こちらに辿りつく事が出来ました。
本当にありがとうございます!
今後もこちらのサイトを参考にさせて頂きます。
