とても大変だったので、もう二度とやらないとは思いますが…
文字コードをEUC-JPからUTF8に変更したので、やり方を書いておきます。
事の発端は、「~」というキャラクタが「?」となってしまうのに気付いた事。
色々調べてみたら、MT4で「~」「\」が文字化け&日本語タグクラウド重複【解決編】というページに出会いまして、[UTF8]で吐き出してあげれば、何とかなるらしいという事がわかりました。
半角の「¥」とバックスラッシュの関係
まずは簡単な方から。
半角の「¥」が、バックスラッシュとして表示されるのは、単純に表示フォントの問題だと思ったので、font-familyの一個目に日本語フォントを指定してあげる事で解決しているっぽいです。
このページで、「\」が半角の「¥」じゃなくて、バックスラッシュに見えている場合、おそらく「MS Pゴシック」が入っていない環境から見ているのだと思いますよ。
MT4.2 + MySQL5.0環境での文字コード変更
これから書く事を真似して失敗しても責任取れません。バックアップ取るなり、ご自身の責任でオネガイします。
もともと、EUC-JPで書いていた記事をUTF8に変更しました。
大きく3ヶ所いじって成功しました。
正しいやり方なのかどうかはわかりません。不必要な事もしてしまったかもしれません。でも、一応、上手く完了したようです。
その1 MySQLの照合順序を変更する
EUC-JPでセットアップしたので、照合順序は全て、[eucjpms_japanese_ci]になっていました。([ujis_japanese_ci]になっているケースもあるかもですね。)
これを全部、[utf8_general_ci]に変更しました。
もともと、MySQLは内部的には、utf8で処理されているはずなので、照合順序を変更したところで内部データは壊れないハズ!と勝手に思い込み実行。実際、壊れなかったようです。(この辺は勝手な思い込みなので、おそらく100%見当違いですから、信用してはいけません。)
照合順序を変更できる場所は、データベース自体、テーブル、テーブルのフィールドの3ヶ所あります。
phpMyAdminを使用する場合、
データベースを選択した際の[操作]タブ
テーブルを選択した際の[操作]タブ
で設定できます。
フィールドの設定は、テーブルを選択した後に[構造]タブでフィールドの一覧が見れますので、照合順序が設定されているフィールド全てにチェックを入れて、編集アイコン(鉛筆アイコン)を押せば一括で表示する事ができます。
とんでもない数の設定変更をしないといけないので、半端なくだるいです。もう絶対しません。
その2 mt-config.cgi を変更する
下記のように設定を変更します。これらの行が無い場合は、追加しちゃえばいいと思います。
PublishCharset UTF-8 SQLSetNames 1
その3 再構築する
この状態で、ブログの記事を再構築したら、デザインが無い白地の状態で表示されてしまいました。
そこで、テンプレートの、アーカイブテンプレートの全てのテンプレートを1個ずつ開いて、[保存と再構築]をしてみました。
ついでに、インデックステンプレートのスタイルシートとメインページも[保存と再構築]をしてみました。
どこで上手く表示されるようになったのかはわかりませんが、これで過去の記事も含めて全て、utf8で無事に表示されるようになった様子です。
で、波線ですが、ちゃんと表示されるようになったと思いますよ。
~~~~~~~~~~~~~~~~~~~~~~
どうです?
MT5へのアップグレードで大変な苦労を・・・(2009/11/27追記)
その後、MTOS(5.0)へアップデートした際、テンプレート名がほぼ文字化けするというひどい状態になり、上手くアップグレードできませんでした。
まぁ、解決しましたけど。
どうやったかともうしますと、アップグレード前にUTF8でバックアップしていたデータをリストアしただけなんです。
phpAdminを使って、一度全てのテーブルを削除しまして、バックアップしたMT4のテーブルをphpAdminからインポート。
MT5へ改めてログインして、アップグレード作業をして成功しました。
MT5の注意書きに、SQLSetNames 0にしろという記述がありましたが、うちのサーバーではこれが上手くいきませんで、1にして上手くいきました。
おそらく、フィールド名なり一部のレコードなりにeucのコードが残ってたんでしょうかねぇ。
1回バックアップして、テーブルを全部落としてから、リストア(テーブルの再作成)という過程で余計な物が消えたのでしょうか。
詳細不明ではありますが、うまいこと行ってよかったです。
コメントする