为什么 urlEncoder.encode 不能像其他人一样工作?
why can't urlEncoder.encode work like everyone else?
我不得不像这样做愚蠢的事情来让 urlEncoding 像其他库(iOS、Javascript..)一样工作,因为 java.net.URLEncoder
是否有问题写入标准编码:
URLEncoder.encode(normalizeString(str), StandardCharsets.UTF_8.displayName())
.replace("+", "%20")
.replace("%40", "@")
.replace("*", "%2A");
+
和 *
不是百分比编码,而 @
是。并且...现在它正在编码正斜杠 /
。卧槽!对此有很好的解释吗?我使用了错误的字符集吗?
我认为您误解了 URLEncoder
. The UrlEncoder
implements the HTML Specifications 对如何以 HTML 形式编码 URL 的作用。
对于您的情况,我认为库 org.apache.commons.text
可能是更好的解决方案。它为您提供了转义字符的方法。
我不得不像这样做愚蠢的事情来让 urlEncoding 像其他库(iOS、Javascript..)一样工作,因为 java.net.URLEncoder
是否有问题写入标准编码:
URLEncoder.encode(normalizeString(str), StandardCharsets.UTF_8.displayName())
.replace("+", "%20")
.replace("%40", "@")
.replace("*", "%2A");
+
和 *
不是百分比编码,而 @
是。并且...现在它正在编码正斜杠 /
。卧槽!对此有很好的解释吗?我使用了错误的字符集吗?
我认为您误解了 URLEncoder
. The UrlEncoder
implements the HTML Specifications 对如何以 HTML 形式编码 URL 的作用。
对于您的情况,我认为库 org.apache.commons.text
可能是更好的解决方案。它为您提供了转义字符的方法。