文字コード

今までサイト作成時にあまり気にしていなかった文字コードですが、YAHOO!をはじめGoogleやMSN、livedoorなど大手検索サイトがほとんどutf-8を用いていたので、それに倣ってshift_jisから変換してみた。


注意点など。


・htmlファイルヘッダーに書くutf-8文字コード指定は以下
<meta http-equiv="content-type" content="text/html; charset=utf-8">


・サイトの全テキストファイル(html、cssjavascript、txt、xmlなど)をutf-8に統一した方がよい。
ただし、.htaccessファイルはutf-8だとエラーになる場合もある。(サーバーの設定次第?)


・テキストファイルを1つずつ開いてutf-8で保存し直していってもよいが、ファイル数が多い場合は一括変換ソフトを用いるとよい。


WINDOWS備えつきのメモ帳ではutf-8で保存するとBOMというものが付いてしまう。
BOMが付くといくつかのブラウザでいろいろ問題がでるらしい。


・BOMを消すにはバイナリエディタなどを用いる方法もある。


サクラエディタだとutf-8で保存したときに、テキスト中に日本語(全角文字)が含まれていないとshift_jisに強制変換してしまう。


・一括変換ソフトでもファイル内に日本語がないとshift_jisに強制変換してしまうものがある。


・強制変換させないようにコメントアウトでなんでもいいから日本語を入れておくという手も。
例)コメントアウトの方法
htmlファイル
 <!--あ-->
xmlファイル
 <!--あ-->
cssファイル
 /*あ*/
jsファイル
 /*あ*/
robots.txt
 #クローラーさん無視しないでね


cssファイルは以下の一行で文字コード指定した上でutf-8で保存。
@charset "utf-8";


.htaccessファイルでサイト全体の文字コードを指定する方法もあるらしい。


Google先生が保存しているキャッシュの文字コードutf-8(ちなみにヤフーも)。キャッシュされたhtmlファイル自体には文字コードが指定してあるので問題ないが、外部化したjavascriptファイルなどは(shift_jisで書かれていても)utf-8で読み込まれてしまい文字化けしたりする。
外部ファイルの文字コードutf-8に直すのが面倒な場合は、以下のようにして文字コードを指定して外部ファイルを読み込むようにする。
<script type="text/javascript" src="/js/hoge.js" charset="Shift_JIS"></script>
これでhoge.jsはshift_JISで書かれていますとGoogle先生に伝えることができて文字化けしない。


ちなみにYahooでは外部化したjavascriptファイルはキャッシュに読み込まない。