fix decode

This commit is contained in:
Looly
2023-04-18 12:24:15 +08:00
parent 549523db6c
commit 91de866ffa
3 changed files with 19 additions and 5 deletions

View File

@@ -1,5 +1,6 @@
package cn.hutool.core.net;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
@@ -87,6 +88,11 @@ public class URLDecoder implements Serializable {
char c;
for (int i = 0; i < length; i++) {
c = str.charAt(i);
if('+' == c){
result.append(isPlusToSpace ? CharUtil.SPACE : c);
begin++;
continue;
}
if(ESCAPE_CHAR == c || CharUtil.isHexChar(c)){
continue;
}

View File

@@ -14,6 +14,12 @@ public class UrlDecoderTest {
Assert.assertEquals("+", URLDecoder.decodeForPath("+", CharsetUtil.CHARSET_UTF_8));
}
@Test
public void decodePlusTest() {
final String decode = URLDecoder.decode("+", CharsetUtil.CHARSET_UTF_8);
Assert.assertEquals(" ", decode);
}
@Test
public void issue3063Test() throws UnsupportedEncodingException {
// https://github.com/dromara/hutool/issues/3063