Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
URLDecode.decode方法在Java中未按预期工作_Java_Url_Urlencode_Url Encoding - Fatal编程技术网

URLDecode.decode方法在Java中未按预期工作

URLDecode.decode方法在Java中未按预期工作,java,url,urlencode,url-encoding,Java,Url,Urlencode,Url Encoding,我试图解码URL编码的帖子正文,遇到了这个问题 我使用此方法进行解码(它也解码多个编码URL): 当输入url为“a%20%2B%20b%20%3D%3D%2013%25!”时,调试时该控件不知何故不会显示在第decodeURL=行之后。也没有提出例外情况 问题是控件没有超出“decodeURL”行 是什么导致了这个问题?请使用调试器模拟这个问题。刚刚在Java8U151上测试了它。这会在循环的第二个旋转上抛出一个IllegalArgumentException:“URLDecker:不完整的尾

我试图解码URL编码的帖子正文,遇到了这个问题

我使用此方法进行解码(它也解码多个编码URL):

当输入url为“a%20%2B%20b%20%3D%3D%2013%25!”时,调试时该控件不知何故不会显示在第
decodeURL=
行之后。也没有提出例外情况

问题是控件没有超出“decodeURL”行


是什么导致了这个问题?请使用调试器模拟这个问题。

刚刚在Java8U151上测试了它。这会在循环的第二个旋转上抛出一个IllegalArgumentException:“URLDecker:不完整的尾部转义(%)模式”。这是因为在第一次解码之后,你有“a+b==13%!”,而在第二次解码期间,%应该引入一个编码序列,但它没有。我认为这是预期的行为,即使其他语言的标准库不同意。例如,Python 3.6:

>>> from urllib.parse import unquote
>>> result = unquote('a%20%2B%20b%20%3D%3D%2013%25!')
>>> result
'a + b == 13%!'
>>> unquote(result)
'a + b == 13%!'

刚刚在Java8U151上进行了测试。这会在循环的第二个旋转上抛出一个IllegalArgumentException:“URLDecker:不完整的尾部转义(%)模式”。这是因为在第一次解码之后,你有“a+b==13%!”,而在第二次解码期间,%应该引入一个编码序列,但它没有。我认为这是预期的行为,即使其他语言的标准库不同意。例如,Python 3.6:

>>> from urllib.parse import unquote
>>> result = unquote('a%20%2B%20b%20%3D%3D%2013%25!')
>>> result
'a + b == 13%!'
>>> unquote(result)
'a + b == 13%!'
你说“控制”是什么意思?你说“控制”是什么意思?