以下の記事は以前のもので、現在はWordPressを使用しています。

 

最近気が付いたのですが、このMovableType4で記事を書いていると「~」が「?」に勝手に置き換わるという現象にみまわれました。エディタで入力する時はきちんと入るのですが、再構築をかけると置き換わってしまうというものです。

これ以外にも全角のマイナス「-」などいくつか同様の文字化けを起こすものがあったものの、特に使わないものだったので “いいっか” と思っていたのですが、「~」は使いたいという思いもあり、いろいろ調べてみました。

このMT、MySQLに乗っけているのですが、どうやらこのMySQLとMTとの相性のようでした。文字化けなので、恐らく文字セットがらみだということは分かっていましたが、今回はちょっとややこしそうな感じがしましたね。

MTはデフォルトでutf8なのですが、データ格納先のMySQLのほうはというと、デフォルトがeucになっていてこれが原因でした。MTのほうは「mt-config.cgi」の中でPublishCharsetで指定してやれば簡単に変更できるのですが、実は機能追加したcgiやスクリプトなど全てutf8で揃えていたため、MTのコンフィグを変えるとそれらに影響が出てしまい、ややこしことになりそうだったので、やむなくMySQLのほうを変えることにした訳です。

ただ、こちらも結果として時間がかかりましたね。

一度セットアップしたデータベースの文字セットを一気に変える方法としては、一旦データベース(該当のテーブル)をSQLあたりでエクスポートして、その中の文字セットに関する記述をテキストエディタで全て置換し、元のデータベースへインポートするということになります。
(その前に、元のテーブルは削除しておくのとMySQL接続の照合順序を「ujis_japanese_ci」(euc)から「utf8_general_ci」(utf8)に変更しておきます。)

これで、完了です。

で、今回phpmyadminでこれを行おうとしたのですが、エクスポートがやたらと時間がかかり挙句の果てにエラーが出る始末。

phpmyadmin

仕方なく、テーブルさらにはカラムごとに1つ1つ手作業で文字セットを修正しました。テーブル数はそんなに多くは無いものの、その中のカラムまでとなると、、、ちょっと面倒でしたね。まぁそれでも20分ぐらいだったでしょうか、最後に再構築するときは、いつものように緊張しましたが、何事も無かったようにうまくいきました。

これで、晴れて「~」が使えるようになりました。\^^/

でも、このMTのセットアップの前に同じデータベースにphpBBを入れたときは、プログラム側で自動的にutf8にしてくれていましたので、MTもそのようにしてほしいところですね。
(とはいうもののそういう問題でもないか)

 

ところで、phpmyadminでのエクスポートですが、文字セット修正後にもう一度行ってみたところなぜかすんなりできました。まぁ良かったです。サーバー移転時など、パックアップができないと困りますからね。(MT側でもバックアップは取れますが)