La paĝo ŝargiĝas tra la prokurilo, sed supersignitaj literoj revenas miksitaj. Antaŭ ol ŝanĝi prokurilon, trovu la unuan lokon, kie la bajtoj de la respondo fariĝas Java String. InputStreamReader sen eksplicita charset povas fari tiun decidon antaŭ ol jsoup vidas la dokumenton.

Kiam jsoup pritraktas la elŝuton, tenu la respondon kune ĝis la analizo:

Connection.Response response = Jsoup
    .connect("https://www.example.com/catalog")
    .proxy("proxy.example", 8080)
    .execute();
Document page = response.parse();

La responda API montras charset-informon derivitan el Content-Type. Ĝi ankaŭ povas akcepti eksplicitan charset-anstataŭigon, kiam vi konstatis, ke la deklaro de la servilo estas malĝusta. Prokurila adreso sole ne diras al vi, kiun signokodadon la dokumento uzas. Se vi bezonas permesitan komparon de publika paĝo sen prokurila konto, anstataŭigu la HTTP-gastiganton kaj pordon de la ekzemplo per kandidato el la listo de HTTP-prokuriloj, konservante la samajn kodajn kontrolojn.

Se alia HTTP-kliento liveras InputStream, la fluanaliza ŝarĝaĵo de jsoup akceptas charset-nomon kaj bazan URI-on. Nula charset permesas ĝian dokumentitan detekton kaj rezervan konduton; konata kaj ĝusta HTTP-charset devus esti transdonata intence. La baza URI provizas kuntekston por relativaj ligiloj.

Post kiam bajtoj estis malĝuste malĉifritaj, analizi la rezultan String per alia charset ne rekuperas la originalan tekston. Reiru al la bajtoj kaj al la respondaj metadatumoj. Ankaŭ komparu tion, kio estis ricevita: la ensaluta paĝo aŭ malakcepto de prokurilo povas esti tute alia dokumento ol la petita paĝo, ne malĉifra fiasko en ĝi.

Rilataj artikoloj