gpt4 book ai didi

java - Java 中的 URLDecoder 在 "São Paulo"处阻塞

转载 作者:行者123 更新时间:2023-11-30 04:38:17 24 4
gpt4 key购买 nike

我在 Java 中使用 URLDecoder 类来分析一些 url,但遇到了一个问题。我不确定这是一个错误还是预期的行为,所以就是这样。

考虑这个网址: https://id2.s.nfl.com/fans/mobile/login?gigyresp=true&city= S%u00e3o+Paulo%2c+巴西&profileURL=...

URLDecoder 对“São Paulo”部分感到窒息,尤其是“ã”,它似乎被编码为“%u0”。几乎所有其他事情似乎都处理得很好,但这个特殊的事情却不然。

我正在使用以下内容:

URLDecoder.decode(url, "UTF-8");

我的堆栈跟踪是:

Caused by: java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "u0"
at java.net.URLDecoder.decode(URLDecoder.java:173)

有什么想法可以让 URLDecoder 正确解析它吗?

最佳答案

URL 编码是通过八位字节 %AB 完成的。您的编码似乎是 java 字符串编码 \u00e3 和 URL 编码(如 %xxxx)的混合,这是无效的。

如果将字符串更改为 "S\u00e3o Paulo, Brazil" 并使用 URLEncoder.encode(url, "UTF-8") 对其进行编码,您将获取 S%C3%A3o+Paulo%2c+Brazil,这是完全可解码的。

关于java - Java 中的 URLDecoder 在 "São Paulo"处阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12903168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com