JavaのURLDecoderに問題があります。JavaScriptで文字列をエスケープし、Javaサーブレットに送信します。次に、エスケープされた文字列を次の行でデコードします。
URLDecoder.decode(request.getParameter("text"), "UTF-8");
これは、私が試したすべての特殊文字で正常に機能します。問題を引き起こすのは「%」だけです。文字列でこの文字を使用するたびに、次の例外が発生します。
java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) pattern
java.net.URLDecoder.decode(URLDecoder.java:187)
at.fhv.students.rotter.ajax.count.CountServlet.doGet(CountServlet.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
これは既知のバグですか?それとも本当に私の間違いですか?