我正在用JSoup解析一个网站的一些值,其中一些也是url链接(href)。当我得到url链接时,我将其设置为字符串。字符串有时不会成为有效的url链接,因为它有一个特殊字符,如'!?()
例如:https://somelink.com/King's+Beak('使链接无效)。现在我通过用UTF-8的默认字符集替换字符来解决这个问题,它应该正常工作。
示例代码:
String test = arTD.select("a.wiki_link").get(0).attr("href").replaceAll("'", "%27");
我还将JSoup设置为UTF-8,但这似乎不起作用。
Document document = Jsoup.parse(response.body().string(), "UTF-8");
现在我的问题是,有没有更方便的方法来解决这个问题?,因为我需要转义更多的字符,如'!?()。
先谢谢你。
1条答案
按热度按时间qeeaahzv1#
解决这个问题的一个方法是使用**URLEncoder.encode()**方法对URL字符串进行编码。这个方法会将特殊字符替换为相应的ASCII代码。
解决这个问题的另一种方法是使用android中的Uri.Builder类对URL进行编码。
第一个方法将编码整个url,而第二个方法将只编码url的路径。
选一个适合你的。