プロが教えるわが家の防犯対策術!

はじめまして。javaの初心者です。
質問があります。以下のソースコードで、
----------------------------------------------------------------
<%@ page contentType="text/html;charset=Shift_JIS"
import="java.net.URLEncoder" %>
<html>
<body>
<p>送信元 Test01.jsp</p>
<%
String query = URLEncoder.encode("テスト","Shift_JIS");
String url "http://localhost:8080/Test/Test02.jsp?name="+que …
%>
<a href="<%=url%>">送信</a>
</body>
</html>
----------------------------------------------------------------
<%@ page contentType="text/html;charset=Shift_JIS"
import="java.net.URLDecoder" %>
<html>
<body>
<p>送信先 Test02.jsp</p>
<%
String str = request.getParameter("name");
String name = URLDecoder.decode(str,"Shift_JIS");
%>
<%= name %>
</body>
</html>
----------------------------------------------------------------
リンクに日本語をエンコードした文字列をクエリとして追加して
送信すると、送信先で表示したとき文字化けしてしまいます。
setCharacterEncoding("Shift_JIS")などを送信先に指定すると
文字化けは回避できるのですが、それではURLEncoderやURLDecoder
を使用している意義がないのではないかと思っています。
なぜ文字化けしてしまうのかをご教授お願いします。
現在WindowsXP IE6.0 Tomcat5.5 JDK1.5を使用しています。

A 回答 (1件)

参考URLのような問題があるみたいですね。


(Versionが違うからはっきりとしたことがいえませんが・・・・。)

もしApacheのcommonsを使用できる環境にあるならば
org.apache.commons.codec.net.URLCodec
でおそらく解決できるのではないでしょうか・・・?
(検証していないのではっきりとしたことはいえませんが・・・。)

参考URL:http://senrigan.ddo.jp/candid/urlencode.html
    • good
    • 0
この回答へのお礼

braver_2004様へ
連絡が遅れましてすみませんでした。
braver_2004様が教えてくださいました、参考URLが大変参考になりました。ありがとうございました。
やはり、J2SE 1.5でも参考URLの内容と同じ問題がおこるようです。
JavaのURLEncoderによるエンコードの結果と、ブラウザによる
エンコードの結果が異なるため、その異なったブラウザによるエンコードの結果がURLDecoderに渡されるために文字化けが生じたのですね。
勉強になりました。ありがとうございました。

お礼日時:2006/10/20 14:59

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