如何使用 Jsoup 获取包含非 ASCII 字符(±, ś ...)的 URL?

How to fetch an URL containing non-ASCII characters (ą, ś ...) with Jsoup?

我正在使用 jsoup 来解析一些波兰语网站,但我对 URL(!) 中的特殊字符如“ą”、“ś”有问题,例如 example.com/kąt 读起来像example.com/k

没有这个特殊字符的每个查询都可以完美运行

我已经试过了Document doc = Jsoup.parse(new URL(url).openStream(), "ISO-8859-1", url)但是还是不行。

还有其他提示吗?

You want to encode your URL before passing it to Jsoup.

示例代码

String url = "http://sjp.pl/maść";       
System.out.println("BEFORE " + url);

String encodedURL = URI.create(url).toASCIIString();
System.out.println("AFTER " + encodedURL);

System.out.println("Title: " + Jsoup.connect(encodedURL).get().title());

输出

 BEFORE http://sjp.pl/maść
 AFTER http://sjp.pl/ma%C5%9B%C4%87
 Title: maść - Słownik SJP

法语语言环境
Jsoup 1.8.3