blog.鶯梭庵

二〇〇六年 水無月 五日 月曜日

Ajax で日本語を含む JSON を使う [/this_blog/ajax]

Ajax の X は XML の X だが、サーバから渡されたデータを JavaScript で処理するなら、XML よりも JSON の方が簡単に扱える。ところが、日本語を含む JSON をそのまま Safari に渡すと、文字化けしてしまう。

それに対する解決策として、高橋登史朗氏は日本語を URL エンコードしているが、そんな面倒なことをしなくても、HTTP ヘッダの Content-Type で文字コードを指定してやればよい。(どうでもいいけど、彼のサイトでコメントを書こうとすると、そっけなく「404」と言われる。)ヘッダの値について、かぜぶろ氏があれこれ試しているが、的をはずしている。JavaScript の MIME タイプは昔から application/x-javascript と相場が決まっている。

というわけで、簡単な解決策は、JSON を出力するさいに、HTTP ヘッダとして以下を出力する。


Content-Type: application/x-javascript; charset=文字コード


2006年7月3日追記 JSON の MIME タイプは application/json と決められている。が、私の環境でテストした限りでは、Opera 8.x はこれに対応していないようだ。やはり、昔ながらの application/x-javascript がよいようだ。

さんのコメント:

・HTMLタグは使えません。

・電子メールアドレスを含めないでください。

・コメントには全角文字を含めて下さい。

・長さの上限はおよそ800字です。

[この記事だけを読む。] [このカテゴリをまとめて読む。] [最新の記事を読む。]

羽鳥 公士郎