人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

EUC-JPで書かれたページの中の一部だけをS-JISにすることはできるのでしょうか?


<状況>
SQLを利用し、データベースから検索するためのページを作成中です。
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">

でページ全体の文字コードを宣言しています。
また、ページの一部にjspを使用し、
<form name="form" action="http://hogehoge.jsp" method="POST">
<中略>
<a href="javascript:moveSubmit('area', 'list');" >再検索</a>
という別条件での検索フォームを設けています。

このjspがFirefoxでなら問題なく動くのですが、IEですと動きません。
いろいろ試してみたところ、IEではS-JISの文字コード下ならば機能するのですがEUS-JPだと機能しないようです。

(jspの部分だけ別ページとして登録し、iframeで切り抜いて表示させることも試みたのですが、今度はtarget=topが機能せず、ページ遷移がiframe内でしか機能しませんでした。)

上記を経て、なんとかしてEUC-JPで書かれたページの中の一部だけをS-JISにすることはできないものかと考えた次第でして。。。

●質問者: petem
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:EUC-JP firefox IE JP JSP
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● cybergoto
●10ポイント

「target=top」

ここを

「target=_top」

にするだけで解決しませんか?

◎質問者からの返答

それがなぜか解決しないのです。


2 ● Yota
●10ポイント

そのjspのところを外部ファイル(Shift_JIS)にして、

print('<form>....')

みたいにて、<div id="fm"></div>を作って、Ajaxで呼び出したらどうでしょう。

window.onload = function() {

var httpoj = new XMLHttpRequest() ;

httpoj.open('GET', 'hoge.jsp', true ) ;

httpoj.send(null) ;

httpoj.onreadystatechange = function() {

if (httpoj.readyState == 4) {

var res = httpoj.responseText ;

document.getElementById('fm').innerHTML = res ;

}

}

}

◎質問者からの返答

Ajaxですか。

扱ったことがないのですが、確認してみます。

ありがとうございます。


3 ● hkmd
●35ポイント

jspは全然知らないのですが、以前同じように javascript + IE6 でeuc-jp内にUTF-8文字列を挿入しようとしてうまくいかなかったときは

<script type="text/javascript" src="hoge.js" charset="utf-8">

とcharsetを指定してやって解決しました。

javascript自体にも詳しくないので、まともな解法かどうかまでは分かりません。

◎質問者からの返答

ありがとうございます!

ひとまず、作動しました。

script内だけ文字コードを変えているんでしょうか?


4 ● b-wind
●10ポイント

ページの一部分のみ文字コードを変えることは無理。


EUS-JPだと機能しない

これの原因をはっきりさせるか、フォームのページ自体を Shift_JIS で作ってしまったほうが早いように思いますが。

◎質問者からの返答

mysqlにEUC形式でUPしましたのでそれがかなり困難なのです。。


5 ● KUROX
●35ポイント

>EUS-JPだと機能しない

どの部分が動作しないのか不明です。

POST時にPOST変数が正しく取れないとかでしょうか?

それなら、JSP側でエンコードの指定を正しくしてやれば

よいと思います。

そのJSPだけは、はくHTMLもEUC-JPに変更すれば

どうでしょう。

文字コード(文字化け)の時は、

地道にどのあたりが駄目なのか突き止めない限り、

泥沼にはまると覆います。

◎質問者からの返答

>どの部分が動作しないのか不明

失礼しました。IEだと、

再検索のボタンが無反応(ページ移動しない)という現象だったのですが,headerにあった<script>の中に charset="shift-jis"を入れたら作動しました。

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ