LinuxマシンをサーバにしてJSPのウェブアプリケーションを構築しています。
サーバには
OS : RedHat Linux7.3
DB : PostgreSQL7.3.2
etc : j2sdk1.4.2_04
jakarta-tomcat-4.1.30
開発側のクライアントマシンには
OS : WindowsXP ProEdition
etc : FTP,Telnetのソフトです。
今回のはDB内のデータを検索して表示する、というものです。
問題は、そのヒット件数の表示(Yahooなどの「次の20件」とか「1 2 3 ...」みたいな感じです。わかりにくいかな…?)に<a href ="~ >を使っています。
ですが、<a href = "~>で作ったリンクで飛ぶと、<a href ~>内につけた次に渡す値(「&book=本」とかです。)が次のページにいくと文字化けしてしまって検索が正常にできません。
ある漢字はちゃんと渡されたりはするのですが…。
(林はOKで東はだめでした。)
JSPの最初の宣言部分でcharset=EUC-JPにしてます。metaでの指定もしています。
渡す変数(book)を
book = new String(book.getByte("ISO8859_1"),"EUC-JP");
でEUCコードにしている…と思うのですが、うまくいきません。
どなたか助言をお願いします。
No.2
- 回答日時:
No.1さんのおっしゃる方法が正攻法ですよね。
私はちょっと違う方法を・・・
a href=.../index.jsp?book=~のようにパラメータを込みで渡そうとするときにはURLエンコードが必要になるんですが、
フォームをGETでsubmitしてやると、ブラウザ任せにできます。
例えば、
<from name="hoge" acrion="index.jsp" method="GET">
<input type="hidden" name="book" value="">
</form>
というフォームを埋め込んでおいて、bookにパラメータを設定する仕組みにしてやって、
<a href="javascript:document.hoge.submit()">リンク先</a>
とやると、ブラウザが勝手にURLエンコードしてくれます。
あまり参考にならないかもしれませんが。
ちなみに、URLエンコードはJAVAなら、URLEncoderとURLDencoderクラスがありますんで
String decodeValue = URLEncoder.encode(encodeValue);
String encodeValue = URLDecoder.decode(decodeValue);
こんな感じで使えます。
この回答への補足
返事遅くなりましたが、回答ありがとうございます!
上記の方法なのですが、ほかの処理をするのにSubmitを使っているので今回は不適合でした。でもこれでURLエンコードになるってのはありがたい情報でした~m(_ _)m
それで下記のURLエンコーディングを調べていたのですが、うまくいかないです…。dayowlさんのコピペだけではだめなんですか?(変数は変えてます)
自分ほとんどJavaわかってないですよね…もうしわけないですけれども、もう少し具体的にソースを書いてくれるとありがたいです。できればよろしくお願いします。
No.3
- 回答日時:
すいません完全に私の説明不足です。
submitするというのはこういう方法のことでした。
<html lang="ja">
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
<!--
function mySubmitAction(bookValue) {
document.form1.book.value = bookValue;
document.form1.submit();
}
// -->
</script>
<title></title>
</head>
<body>
<a href="javascript:mySubmitAction('ほげほげ')">ほげほげ</a>
<form name="form1" acrion="index.jsp" method="GET">
<input type="hidden" name="book" value="">
</form>
</body>
</html>
こうすると「ほげほげ」をクリックすると下記のようなリンクになります。
http;//~/inputjsp?book=%82%D9%82%B0%82%D9%82%B0
それと、URLEncoderとURLDencoderの使い方も、いい加減な書き方をしていました。
しかも、No.2の方法は今は推奨されない方法でした。
今は、エンコード/デコード共に引数2つ使います。
ホントすみません。m(_ _)m
/* URLエンコードしたいとき */
String enc = "SJIS";
String inputStr = "あいうえお"; /*エンコードしたい文字列*/
try {
Stinrg result = URLEncoder.encode(inputStr, enc);
/* resultに"%82%A0%82%A2%82%A4%82%A6%82%A8"が入る */
} catch (UnsupportedEncodingException e) {}
//デコードしてSJISにしたいとき
String encodeStr = "%82%A0%82%A2%82%A4%82%A6%82%A8";/*デコードしたい文字列*/
try {
String result = URLDecoder.decode(encodeStr, enc);
/* resultに"あいうえお"が入る*/
} catch (UnsupportedEncodingException e) {}
参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/api/java …
No.4ベストアンサー
- 回答日時:
#なんかサーバーの動作がおかしいです。
#もし二重書き込みしていたらごめんなさい。
すいません完全に私の説明不足です。
submitするというのはこういう方法のことでした。
<html lang="ja">
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
<!--
function mySubmitAction(bookValue) {
document.form1.book.value = bookValue;
document.form1.submit();
}
// -->
</script>
<title></title>
</head>
<body>
<a href="javascript:mySubmitAction('ほげほげ')">ほげほげ</a>
<form name="form1" acrion="index.jsp" method="GET">
<input type="hidden" name="book" value="">
</form>
</body>
</html>
こうすると「ほげほげ」をクリックすると下記のようなリンクになります。
http;//~/inputjsp?book=%82%D9%82%B0%82%D9%82%B0
それと、URLEncoderとURLDencoderの使い方も、いい加減な書き方をしていました。
しかも、No.2の方法は今は推奨されない方法でした。
今は、エンコード/デコード共に引数2つ使います。
ホントすみません。m(_ _)m
/* URLエンコードしたいとき */
String enc = "SJIS";
String inputStr = "あいうえお"; /*エンコードしたい文字列*/
try {
Stinrg result = URLEncoder.encode(inputStr, enc);
/* resultに"%82%A0%82%A2%82%A4%82%A6%82%A8"が入る */
} catch (UnsupportedEncodingException e) {}
//デコードしてSJISにしたいとき
String encodeStr = "%82%A0%82%A2%82%A4%82%A6%82%A8";/*デコードしたい文字列*/
try {
String result = URLDecoder.decode(encodeStr, enc);
/* resultに"あいうえお"が入る*/
} catch (UnsupportedEncodingException e) {}
参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/api/java …
詳しい回答ありがとうございました!
おかげでなんとか解決することができました。
今回、submitの方のやり方は使いませんでしたが、dayowlさんのおかげで新しい使い方を知ることができました^-^
また何かありましたらよろしくお願いします。失礼します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP PHP MySql ページング 2 2022/09/20 06:38
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
- PHP PHP ページング データベース 1 2022/06/16 10:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<a href="#" …>の意味を教えて...
-
相対パスと絶対パスの速度
-
個別にハイパーリンクの色を指...
-
<a href>での背景色について。
-
POSTで<a hrefを送る方法について
-
正規表現 教えてください
-
下線(アンカー)の表示を特定...
-
ステータスバーにリンクのURLを...
-
数秒後に自動的に移動します。...
-
bodyにidをつける理由は何ですか?
-
別ファイルのfunctionの読み込み方
-
(Javascript)印刷するファイル...
-
複数のJavascriptを1つのscrip...
-
base64encodeでの文字化けについて
-
入力したテキストボックスのデ...
-
ウインドウの後ろに隠れている...
-
JavaScriptでiframeの内容を「...
-
ウインドウを縮小しても文字を...
-
Cygwinでログをのこす方法
-
jQueryでdivをクリックし別窓で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a href="#" …>の意味を教えて...
-
html メールリンクにて自動ファ...
-
相対パスと絶対パスの速度
-
フレームだけ閉じる方法ありま...
-
リンクに飛ばない・・・
-
pythonのWebスクレイピングでfi...
-
HTMLソースからURLだけを抜き出...
-
時間によってリンク先を変える...
-
個別にハイパーリンクの色を指...
-
<a href>での背景色について。
-
mailto + 変数名
-
プルダウンメニューからリンク...
-
POSTで<a hrefを送る方法について
-
chromeでの擬似クラス:focus に...
-
URLでEXEを呼出した際の、引数...
-
同意を求めて、次のページに進...
-
リンクを選択すると現れる点線枠
-
HTML内に記載された画像のURLを...
-
ある一定時間操作していない場...
-
iPadのロングタップ(長押し)...
おすすめ情報