Java 如何让UriBuilder使用解码的哈希字符构建URI?

Java 如何让UriBuilder使用解码的哈希字符构建URI?,java,jakarta-ee,jersey,Java,Jakarta Ee,Jersey,我尝试生成以下uri //主机:端口/名称//名称/名称 与泽西URI生成器。问题是uri生成器对哈希字符进行解码 有人知道如何构建给定的URI吗 这就是我所拥有的: final URI build = uriInfo.getBaseUriBuilder().path("..").path("#").path("/clients/asd/").build(); 不是URI路径中的有效字符;它后面实际上是一个URI片段 因此,您需要做的是: final URI build = uriInfo.g

我尝试生成以下uri

//主机:端口/名称//名称/名称

与泽西URI生成器。问题是uri生成器对哈希字符进行解码

有人知道如何构建给定的URI吗

这就是我所拥有的:

final URI build = uriInfo.getBaseUriBuilder().path("..").path("#").path("/clients/asd/").build();
不是URI路径中的有效字符;它后面实际上是一个URI片段

因此,您需要做的是:

final URI build = uriInfo.getBaseUriBuilder().path("..")
    .fragment("/clients/asd/").build();
注意:事实上,我不用球衣;我查找了javadoc,因为我认为这是相同的

不是URI路径中的有效字符;它后面实际上是一个URI片段

因此,您需要做的是:

final URI build = uriInfo.getBaseUriBuilder().path("..")
    .fragment("/clients/asd/").build();

注意:事实上,我不用球衣;我查阅了javadoc,因为我认为这对我来说是一样的,这就是有效的:

final URI build = UriBuilder.fromUri("{arg1}").fragment("{arg2}").buildFromEncoded("../","/clients/asd/");
使用.path…fragment/clients/asd/.build将生成

..%2fClient%2Fasd


对我来说,这就是成功的原因:

final URI build = UriBuilder.fromUri("{arg1}").fragment("{arg2}").buildFromEncoded("../","/clients/asd/");
使用.path…fragment/clients/asd/.build将生成

..%2fClient%2Fasd

你可以试试。pathURLEncoder。encode@Alden1.URLEncoder.encode不适用于URI;2.OP实际上想要一个URI片段,而不是逃避哈希符号,您可以尝试.pathURLEncoder。encode@Alden1.URLEncoder.encode不适用于URI;2.OP实际上想要一个URI片段,而不是转义散列符号