Az oldal a proxyn keresztül töltődik be, de az ékezetes betűk összekeveredve jönnek vissza. Mielőtt proxyt váltana, keresse meg az első helyet, ahol a válasz bájtjai Java Stringgé válnak. Egy explicit charset nélküli InputStreamReader még azelőtt meghozhatja ezt a döntést, hogy a jsoup látná a dokumentumot.

Amikor a jsoup végzi a letöltést, tartsa együtt a választ az elemzésig:

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

A válasz API a Content-Type-ból származó charset-információkat tárja fel. Explicit charset-felülírást is elfogadhat, ha megállapította, hogy a szerver deklarációja hibás. Egy proxycím önmagában nem mondja meg, milyen karakterkódolást használ a dokumentum. Ha engedélyezett nyilvános oldal-összehasonlításra van szüksége proxyfiók nélkül, cserélje ki a példa HTTP-gazdagépét és portját egy jelöltre a HTTP-proxylistából, miközben megtartja ugyanazokat a kódolási ellenőrzéseket.

Ha egy másik HTTP-kliens biztosít InputStreamet, a jsoup stream-elemző túlterhelése elfogad egy charset-nevet és egy alap URI-t. A null charset engedélyezi a dokumentált felismerést és tartalék viselkedést; egy ismert és helyes HTTP charsetet szándékosan kell továbbadni. Az alap URI kontextust ad a relatív hivatkozásokhoz.

Miután a bájtok hibásan dekódolódtak, a kapott String más charsettel való elemzése nem állítja vissza az eredeti szöveget. Térjen vissza a bájtokhoz és a válasz metaadataihoz. Hasonlítsa össze azt is, ami megérkezett: a proxy bejelentkező oldala vagy elutasítása teljesen más dokumentum lehet, mint a kért oldal, nem pedig dekódolási hiba benne.

Kapcsolódó cikkek