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にすることはできないものかと考えた次第でして。。。

回答の条件
  • 1人2回まで
  • 登録:2007/09/14 16:24:01
  • 終了:2007/09/16 08:50:18

回答(5件)

id:cybergoto No.1

cybergoto回答回数5ベストアンサー獲得回数02007/09/14 17:21:15

ポイント10pt

「target=top」

ここを

「target=_top」

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

id:petem

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

2007/09/16 08:07:27
id:Yota No.2

Yota回答回数453ベストアンサー獲得回数282007/09/14 18:01:49

ポイント10pt

その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 ;

}

}

}

id:petem

Ajaxですか。

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

ありがとうございます。

2007/09/16 08:07:12
id:hkmd No.3

hkmd回答回数20ベストアンサー獲得回数02007/09/15 01:57:01

ポイント35pt

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

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

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

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

id:petem

ありがとうございます!

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

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

2007/09/16 08:30:55
id:b-wind No.4

b-wind回答回数3344ベストアンサー獲得回数4402007/09/15 12:03:52

ポイント10pt

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


EUS-JPだと機能しない

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

id:petem

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

2007/09/16 08:40:21
id:KUROX No.5

KUROX回答回数3542ベストアンサー獲得回数1402007/09/16 07:06:52

ポイント35pt

>EUS-JPだと機能しない

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

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

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

よいと思います。

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

どうでしょう。

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

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

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

id:petem

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

失礼しました。IEだと、

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

ありがとうございます。

2007/09/16 08:46:38

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません