FC2ブログの「完全UTF-8化」で注意しておきたいポイント

FC2ブログは以前からサーバの移転を予定していて、これにより文字コードがEUC-JPからUTF-8へ順次仕様変更されることが告知されていた。先日調べたところ、ついにこのブログが使用している41サーバも変更された模様。スケジュール自体は全然チェックしていなかったのだけど、どうやら6/28に切り替わったようだ。

上の記事によると7月上旬にはすべてのサーバが移転完了するとのこと。実は近年のFC2ブログはサーバ言語設定によってEUC-JPとUTF-8が混在するというよくわからない仕様になっていたのだが、これによりFC2ブログは完全に「文字コードUTF-8のブログサービス」となる。

突っ込みを入れられて気がついたので訂正。「今スケジュールが決定しているものが終わるのが7/4」というだけで、移行作業はまだまだ続く予定。ろくに確認せず書いてしまったので、訂正してお詫び申し上げます。

文字コード変更で気をつけておきたいところ

サーバ移転というと利用者は身構えてしまいがちだが、ブログURLは変わらないため管理者・閲覧者ともそのあたりは気にする必要はない。後述するが、どちらかといえば文字コードが変更される方が影響が大きいかも知れない。とはいえまったく変わらないわけではなく、管理画面のURLは変更される。閲覧者には特に何の影響もないが、管理画面へのリンクを張ってあるテンプレートを使ってる場合は、ブロガーには関係あるかもしれない。

なお、サーバー移設されたブログは 以下のように ログイン後の管理画面のURL が変更されます。

【例】
移設前のURL: http://blog(サーバー番号).fc2.com/control.php
移設後のURL: http://control.blog.fc2.com/control.php
※ ログイン後のURLが変更されますが、従来通りログインすることが可能です。
※ ご利用のブログURLに変更はございません。

FC2総合インフォメーション 【ブログ】サーバー移設による管理画面のURL変更のお知らせ

UTF-8への切り替えで問題になりそうなのは大きく2点。ひとつは現在使用・読み込みをしているJavaScriptが正常に動かなくなる可能性。サーバ移転に伴いJavaScriptの読み込みや実行に使うScript要素に「charset="euc-jp"」がテンプレートに強制的に書き込まれることがあり、これが不具合の原因になりえてしまう。(さらにチェックがいい加減らしく、scriptタグ以外の場所に書き込まれることもあるようだ。)

■charset属性のないscript要素に「 charset="euc-jp"」が強制挿入

(中略)

■src属性のないscript要素にも「charset="euc-jp"」が強制挿入

FC2ブログサーバー移設の確認事項 テンプレート文字コード「utf-8」 : FC2ブログ - Paroday

詳しくは引用元を見てもらいたいが、要するに「文字コードがEUC-JPでないJavaScriptに“EUC-JP”を設定してしまう可能性があり、これにより文字化けが発生する。あるいは正常にスクリプトが読み込めなくなる」ことがあり得る。もしそうなってしまったら、勝手に追加された「charset="euc-jp"」という文字列を削除すれば問題ない。(特に問題ないならそのままでよい。)自分のテンプレートも片っ端から“ECU-JP”が設定されていたので、実際にECU-JPであるものを除いて早々に修正してしまった。

もうひとつは古めのFC2ブログ関係の記事がトラブルの原因になりうること。このブログの記事を含め、多くのFC2ブログのカスタマイズやノウハウの記事は「FC2ブログの文字コードはEUC-JPである」という前提の元に書かれている。特に外部サービスとの連携カスタマイズなどの場合、書かれているコードをそのままコピーして貼り付けても正常に動かないかも知れないし、ものによっては文字化けによってブログデザインが崩れてしまうなどの事態も考えられる。

DISQUSやTwitterなど、多くのグローバルサービスではUTF-8が使われている。そのため外部サービスとの連携を考えたときに、中長期的にはUTF-8への変更は文字化けや不具合を減らす方向に進むのではないかと思う。とはいえ切り替え時はトラブルが一番起こりやすい。実際自分のブログも一部文字化けしていたので、サーバ移転が終わった段階でざっとブログをチェックしておいてはいかがだろうか。