dポイントプレゼントキャンペーン実施中!

私はshift_JISで作成したCGIのページがあるのですが、
Ajaxを導入しようとしたときに、Ajaxというか
Javascriptでは、utf-8しか認識しないととあるサイトに書いてあったのですが、
そのCGIのページをphpに変更するにはものすごく多大な時間が
必要になってしまうんですが、CGIをutf-8仕様にするのも大変です
AjaxでShift_JISに変換するような事はできませんでしょうか?
http://javascriptist.net/ref_prototype/ajax.peri …
のサイトに乗っている
<script type="text/javascript" src="/js/prototype.js"></script>
<script type="text/javascript">
var myajax;
function execute() {
myajax = new Ajax.PeriodicalUpdater(
"container",
"./member.cgi",
{
"method": "get",
"parameters": "id=$id",
frequency: 5, // 5秒ごとに実行
onSuccess: function(request) {
// 成功時の処理を記述
// alert('成功しました');
// jsonの値を処理する場合↓↓
// var json;
// eval("json="+request.responseText);

// ↓IEでもキャッシュを読み込まずに毎回リモート接続を実行するためのコード(パラメータの書き換え)
var str = myajax.options.parameters;
var hash = str.parseQuery();
hash["ajax_request_id"] = Math.random();
hash = $H(hash);
myajax.options.parameters = hash.toQueryString();
},
onComplete: function(request) {
// 完了時の処理を記述
// alert('読み込みが完了しました');
// jsonの値を処理する場合↓↓
// var json;
// eval("json="+request.responseText);
},
onFailure: function(request) {
alert('読み込みに失敗しました');
},
onException: function (request) {
alert('読み込み中にエラーが発生しました');
}
}
);
}
</script>
を使用して自動更新をしようと思っているのですが

A 回答 (1件)

古いブラウザを考えなければ、


responseTextを使うなら content-type: text/plain; charset=Shift_JIS; を指定、
responseXMLを使うならXML宣言でShift_JISを指定、
JSONPなら<script 略 charset="shift_jis"></script>の形式で挿入すれば
私が確認した限り、HTMLの文字コードとスクリプトの文字コードが異なっていても大丈夫なようです。

この回答への補足

ちょっと私には違う感じがするのですが。
こういう状態なんです。

CGI - [Sjis] -->読み込み[prototype.js] --> 読み込むCGI[Sjis]
なんですが、読み込むCGIがSjisだと文字化けしてしまうんです。
読み込むCGIをutf-8Nで設定した場合はスクリプト内の文字は
文字化けしませんでした。
ただログファイルはSjisなので文字化けしてしまって・・・
prototype.js内でできないかと思いまして・・・
jquery.jsも試したのですが、まだよくわかりませんでした

補足日時:2008/07/12 10:33
    • good
    • 0
この回答へのお礼

ありがとうございました。
結果無事に解決することができました。
補足の部分は無視してください。

お礼日時:2008/07/12 11:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!