mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
fix bug
This commit is contained in:
parent
9a88945386
commit
5c6e275750
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
# 5.7.20 (2022-01-19)
|
# 5.7.20 (2022-01-20)
|
||||||
|
|
||||||
### 🐣新特性
|
### 🐣新特性
|
||||||
* 【core 】 增加对null值友好的groupingBy操作的Collector实现,可指定map类型(pr#498@Gitee)
|
* 【core 】 增加对null值友好的groupingBy操作的Collector实现,可指定map类型(pr#498@Gitee)
|
||||||
@ -27,6 +27,7 @@
|
|||||||
* 【core 】 修复Opt.ofTry中并发环境下线程安全问题(pr#504@Gitee)
|
* 【core 】 修复Opt.ofTry中并发环境下线程安全问题(pr#504@Gitee)
|
||||||
* 【core 】 修复PatternFinder中end边界判断问题(issue#2099@Github)
|
* 【core 】 修复PatternFinder中end边界判断问题(issue#2099@Github)
|
||||||
* 【core 】 修复格式化为中文日期时,0被处理为空串(pr#507@Gitee)
|
* 【core 】 修复格式化为中文日期时,0被处理为空串(pr#507@Gitee)
|
||||||
|
* 【core 】 修复UrlPath转义冒号问题(issue#I4RA42@Gitee)
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------
|
||||||
# 5.7.19 (2022-01-07)
|
# 5.7.19 (2022-01-07)
|
||||||
|
@ -117,7 +117,10 @@ public class UrlPath {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建path,前面带'/'
|
* 构建path,前面带'/'<br>
|
||||||
|
* <pre>
|
||||||
|
* path = path-abempty / path-absolute / path-noscheme / path-rootless / path-empty
|
||||||
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param charset encode编码,null表示不做encode
|
* @param charset encode编码,null表示不做encode
|
||||||
* @return 如果没有任何内容,则返回空字符串""
|
* @return 如果没有任何内容,则返回空字符串""
|
||||||
@ -129,10 +132,14 @@ public class UrlPath {
|
|||||||
|
|
||||||
final StringBuilder builder = new StringBuilder();
|
final StringBuilder builder = new StringBuilder();
|
||||||
for (String segment : segments) {
|
for (String segment : segments) {
|
||||||
// 根据https://www.ietf.org/rfc/rfc3986.html#section-3.3定义
|
if(builder.length() == 0){
|
||||||
// path的第一部分允许有":",其余部分不允许
|
// 根据https://www.ietf.org/rfc/rfc3986.html#section-3.3定义
|
||||||
// 在此处的Path部分特指host之后的部分,即不包含第一部分
|
// path的第一部分不允许有":",其余部分允许
|
||||||
builder.append(CharUtil.SLASH).append(RFC3986.SEGMENT_NZ_NC.encode(segment, charset));
|
// 在此处的Path部分特指host之后的部分,即不包含第一部分
|
||||||
|
builder.append(CharUtil.SLASH).append(RFC3986.SEGMENT_NZ_NC.encode(segment, charset));
|
||||||
|
} else {
|
||||||
|
builder.append(CharUtil.SLASH).append(RFC3986.SEGMENT.encode(segment, charset));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (StrUtil.isEmpty(builder)) {
|
if (StrUtil.isEmpty(builder)) {
|
||||||
// 空白追加是保证以/开头
|
// 空白追加是保证以/开头
|
||||||
|
@ -251,6 +251,15 @@ public class UrlBuilderTest {
|
|||||||
Assert.assertEquals(urlStr, urlBuilder.toString());
|
Assert.assertEquals(urlStr, urlBuilder.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void encodePathTest2(){
|
||||||
|
// https://gitee.com/dromara/hutool/issues/I4RA42
|
||||||
|
// Path中`:`在第一个segment需要转义,之后的不需要
|
||||||
|
final String urlStr = "https://hutool.cn/aa/bb/Pre-K,Kindergarten,First,Second,Third,Fourth,Fifth/Page:3";
|
||||||
|
final UrlBuilder urlBuilder = UrlBuilder.ofHttp(urlStr, CharsetUtil.CHARSET_UTF_8);
|
||||||
|
Assert.assertEquals(urlStr, urlBuilder.toString());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void gimg2Test(){
|
public void gimg2Test(){
|
||||||
String url = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.jj20.com%2Fup%2Fallimg%2F1114%2F0H320120Z3%2F200H3120Z3-6-1200.jpg&refer=http%3A%2F%2Fpic.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1621996490&t=8c384c2823ea453da15a1b9cd5183eea";
|
String url = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic.jj20.com%2Fup%2Fallimg%2F1114%2F0H320120Z3%2F200H3120Z3-6-1200.jpg&refer=http%3A%2F%2Fpic.jj20.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1621996490&t=8c384c2823ea453da15a1b9cd5183eea";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user