• 締切済み

【Ajax】SHIFT-JISの文字化け 

AjaxのSHIFT-JIS文字化けで悩んでいます。 下記コードです。※prototype.js使用※ <html> <head> <meta http-equiv="content-type" content="text/html;charset=Shift_JIS"> <title>Sample</title> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"><!-- function loadHTMLFile(fName) { new Ajax.Request(fName, { method: "get", onComplete: displayData }); } function displayData(httpObj){ alert(httpObj); $("result").innerHTML =httpObj.responseText; } // --></script> </head> <body> <h1>サーバー上のHTMLファイルを読み込む</h1> <form> <input type="button" value="●●.htmlファイルを読み込み" onClick="loadHTMLFile('●●.html')"> </form> <div id="result"></div> </body> </html> ●●.htmlおよび、このコードを記述しているファイルのエンコードは "SHIFT-JIS"です。 ●●.htmlのエンコードを"UTF-8"にするとうまく表示できます。 "SHIFT-JIS"同士のやり取りの方法を教えて頂きたく思います。 宜しくお願い致します。 ※サーバはwindow用XAMPを自分のローカルに使用しています。  アパッチの設定はいじっていません。

みんなの回答

回答No.1

・HTTPのcontent-typeヘッダにShift_JISを指定する。 Content-Type: text/javascript; charset=Shift_JIS ・あらかじめURLエンコードしておき、JavaScriptでデコードする というのはいかがでしょうか。

camp2007
質問者

お礼

taloo様 早速の回答ありがとうございます。 その後、いろいろ調査検証を行った結果、 サーバサイドの問題だということが判明しました。 以下報告です。 アパッチの設定を下記のようにしましたら解決しました。 --------------------------------------------------------------- 1.全ての「AddCharset」の設定行の先頭に「#」を記述し、無効化。 2.下記のテキストを「AddCharset」の記述箇所に追記  AddDefaultCharset shift_jis  AddCharset shift_jis .sjis 3.「LanguagePriority」の先頭に「ja」を下記のように持ってくる  LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW --------------------------------------------------------------- ありがとうございました。