【发布时间】:2021-10-19 08:08:10
【问题描述】:
我需要允许用户输入各种特殊字符,所以我使用了 java URLDeacoder.decode() 方法,我使用 println 进行了测试。除此百分比符号外,其他特殊字符没有问题,执行时出错。这是为什么?我知道 % 被用于 URL 编码,是这个原因吗?
java.lang.IllegalArgumentException: URLDecoder: 不完整的尾随转义 (%) 模式
System.out.println(URLDecoder.decode("%", "UTF-8"));
【问题讨论】:
-
百分比是编码值的开头,您也需要该值。例如,
%20是一个空格。 -
@ElliottFrisch 是的,我注意到了,但是有什么解决方法可以让用户输入 % 吗?
-
定义“特殊字符”。请注意,
URLDecoder用于解码application/x-www-form-urlencoded̀数据,这可能不是您想要的。 -
@fge 那些可以在键盘上找到的非字母数字字符