Java URLDecoder将百分比符号解码为错误

时间:2016-02-11 05:44:56

标签: java urldecode

我需要允许用户输入各种特殊字符,所以我使用java URLDeacoder.decode()方法,我使用println测试。除了此Percentage符号之外,其他特殊字符没有问题,它在执行期间有错误。这是为什么?我知道%用于URL编码,这是什么原因?

java.lang.IllegalArgumentException:URLDecoder:不完整的尾随转义(%)模式

System.out.println(URLDecoder.decode("%", "UTF-8"));

2 个答案:

答案 0 :(得分:0)

尽管名称如此,URLEncoder/Decoder用于编码网址参数,不是整个网址。

对URL进行编码的方法是使用URL和URI类。

我很好奇你是如何首先获得未解码的网址的。

答案 1 :(得分:0)

%表示编码字符的开头。它后面应该是一些HEXA十进制数。否则,它将抛出IllegalArgumentsException并按预期工作,因为你没有在%之后指定六进制小数。有关详细信息,请参阅http://www.w3schools.com/tags/ref_urlencode.asp。如果您希望输出为'%',则必须执行

<%
    java.util.List<LecturerBean> lists = (java.util.List<LecturerBean>)request.getAttribute("LecturerFullname"));
    for(LecturerBean bean:lists)
    {
%>
<option name="lecturerFullname"><%=bean.getLecturerFullname()%></option>
<%
    }
%>