我需要允许用户输入各种特殊字符,所以我使用java URLDeacoder.decode()方法,我使用println测试。除了此Percentage符号之外,其他特殊字符没有问题,它在执行期间有错误。这是为什么?我知道%用于URL编码,这是什么原因?
java.lang.IllegalArgumentException:URLDecoder:不完整的尾随转义(%)模式
System.out.println(URLDecoder.decode("%", "UTF-8"));
答案 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>
<%
}
%>