- PR -

URLエンコード(JavaScript)をデコード(JSP)する方法

1
投稿者投稿内容
[I]
会議室デビュー日: 2005/03/04
投稿数: 9
お住まい・勤務地: Tokyo
投稿日時: 2005-04-01 12:00
お世話になります。JSPで開発をしているものです。

JavaScriptでescapeでエンコードした文字列をJSPで取得しデコードするにはどのようにしたらよいのでしょうか?
JavaScriptで言うところのunescapeにあたるメソッドはJavaでは何になるのでしょうか?
現在URLDecoder.decodeを利用して

String P = "";
P = URLDecoder.decode("%u304A%u306F%u3088%u3046","UTF-8");

としていますが、上手くいかずエラーになってしまいます。

org.apache.jasper.JasperException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "u5"
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "u5"
java.net.URLDecoder.decode(Unknown Source)
org.apache.jsp.order.check_jsp._jspService(check_jsp.java:276)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


どなたか、ご教授宜しくお願い致します。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-04-01 12:28
private メソッドになりますが、
java.util.Properties#loadConvert()
が参考になるかと思います。
#もしかしたら Unicode のアンエスケープをする API があるかもしれませんが存じません
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2005-04-01 12:33
% の後には 00 〜 FF までの値が入るのではないですかな?
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-04-01 20:42
escape関数はjava.net.URLDecoderと互換性がありません。

詳しくは
http://www.cresc.co.jp/tech/java/URLencoding/JavaScript_URLEncoding.htm
を参考にしてください。
1

スキルアップ/キャリアアップ(JOB@IT)