2009年10月16日

Movable Type で「~」が「?」に文字化けする事象や日本語のタグが合算できない不具合を解消する

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 テーブルをクリック

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

「すべてチェックする」をクリック

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

アイコンをクリック

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

照合順序を変更

以上です。なお、一度文字化けしてしまったものについては手作業で修正が必要なようです。

2.2 日本語の連結ができない不具合を解消する場合

mt_tag テーブルについて、2.1と同様の変更を行います。

照合順序を変更

こちらも、変更後に追加したタグについては合算されますが、既存のタグは合算されないようです。

2.3 その他

コメントの文字化けを変更する場合は mt_comment、トラックバックは mt_tbping / mt_trackback ですが、一通りやっておくとよいでしょう。

3.参考サイト

以下です。ありがとうございました。

2011.02.04
本文を一部修正しました。

Comments [16] | Trackbacks [9]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3