如何使用 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
我正在使用 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