呼出元の文字コードとJavaScript出力の文字コード

2007/05/23 | JavaScript/Ajax

例えばGoogle Adsense。不特定多数にJavaScriptのタグを渡して、それぞれ各自のウェブページにそのタグを貼ってもらうとき、当然貼られる先のウェブページの文字コードはさまざまだ。貼ってもらうJavaScriptで文字を出力するのだが、例えば以下の組み合わせのような場合、
 ウェブページ:Shift_JIS
 JavaScript:UTF-8
特別なことをしないと文字化けして表示される。これを回避するために例えば以下のようなことを考えた。
 ○JavaScriptが貼られているウェブページのURLをJavaScriptで取得
 ○取得したURLのHTMLを丸ごと取得して、文字コード判別
 ○プログラムで判別した文字コードに変換してJavaScriptから出力
しかし、これ、貼られた先のウェブページが表示されてから、JavaScriptの出力が完了するまで少なからず時間がかかることは言うまでもない。

そこでいいことを思いついた(思い出した)。AJAXな仕組みを作るときは基本的に文字コードはUTF-8で作ることが多いが、違う文字コードのウェブページでそういうJavaScriptを使いたいときがある。こういう場合の対処法でJavaScriptを呼び出す際の記述で以下のようにするとうまくいくことがある、と書いてあった。

<script type="text/javascript" src="http://example.com/script.js" charset="UTF-8">

JavaScriptを呼び出す際に「charset属性を指定してやる」というもの。この手法で見事簡単に異なる文字コード間でも正しく出力できることを確認できた(IE、Opera、FireFoxで確認)。
あまりに簡単に面倒なルーチンを回避できたのでちょっとうれしくなった。

2件のコメント

  1. とおりすがりです :

    検索してきました。同じ方法で考えていたのですが、あなたのおかげで簡単に解決できました。ありがとうございます。

  2. いか :

    私も検索してきました。
    ありがとうございました。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net