Leht laaditakse puhverserveri kaudu, kuid diakriitikaga tähed tulevad segastena tagasi. Enne puhverserveri vahetamist leia esimene koht, kus vastuse baidid muutuvad Java Stringiks. InputStreamReader ilma selgesõnalise charsetita võib selle otsuse teha enne, kui jsoup dokumenti näeb.

Kui jsoup haldab toomist, hoia vastus kuni parsimiseni koos:

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

Vastuse API toob välja Content-Type'ist tuletatud charset-teabe. See võib ka vastu võtta selgesõnalise charseti alistamise, kui oled kindlaks teinud, et serveri deklaratsioon on vale. Puhverserveri aadress iseenesest ei ütle, millist tähemärgikodeeringut dokument kasutab. Kui vajad lubatud avaliku lehe võrdlust ilma puhverserveri kontota, asenda näite HTTP-host ja -port HTTP-puhverserverite loendist pärit kandidaadiga, säilitades samad kodeerimiskontrollid.

Kui mõni teine HTTP-klient annab InputStreami, aktsepteerib jsoup vooparsimise ülekoormus charseti nime ja baas-URI-t. Null-charset lubab selle dokumenteeritud tuvastust ja varukäitumist; teadaolev ja õige HTTP-charset tuleks teadlikult edasi kanda. Baas-URI annab suhteliste linkide jaoks konteksti.

Kui baidid on juba valesti dekodeeritud, ei taasta tulemuseks oleva Stringi parsimine teise charsetiga algset teksti. Mine tagasi baitide ja vastuse metaandmete juurde. Võrdle ka seda, mis vastu võeti: puhverserveri sisselogimisleht või keeldumine võib olla täiesti erinev dokument kui taotletud leht, mitte dekodeerimise tõrge selles.

Seotud artiklid