Naglo-load ang pahina sa pamamagitan ng proxy, ngunit bumabalik na magulo ang mga letrang may accent. Bago magpalit ng proxy, hanapin ang unang lugar kung saan nagiging Java String ang mga byte ng tugon. Ang InputStreamReader na walang tahasang charset ay maaaring gumawa ng desisyong iyon bago pa makita ng jsoup ang dokumento.

Kapag ang jsoup ang humahawak ng pagkuha, panatilihing buo ang tugon hanggang sa pag-parse:

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

Inilalantad ng API ng tugon ang impormasyon ng charset na hinango mula sa Content-Type. Maaari rin itong tumanggap ng tahasang pagpapalit ng charset kapag napatunayan mong mali ang deklarasyon ng server. Ang address ng proxy lamang ay hindi nagsasabi kung anong pag-encode ng karakter ang ginagamit ng dokumento. Kung kailangan mo ng pinahihintulutang paghahambing ng pampublikong pahina na walang proxy account, palitan ang HTTP host at port ng halimbawa ng kandidato mula sa listahan ng HTTP proxy, habang pinapanatili ang parehong mga pagsusuri sa pag-encode.

Kung ang ibang HTTP client ay nagbibigay ng InputStream, tinatanggap ng stream parse overload ng jsoup ang isang pangalan ng charset at base URI. Ang null charset ay nagpapahintulot sa dokumentadong pagtuklas at fallback na pag-uugali nito; ang kilala at tamang HTTP charset ay dapat sadyang ilipat. Ang base URI ay nagbibigay ng konteksto para sa mga relatibong link.

Kapag mali na ang pagkaka-decode ng mga byte, ang pag-parse ng resultang String gamit ang ibang charset ay hindi naibabalik ang orihinal na teksto. Bumalik sa mga byte at sa metadata ng tugon. Ihambing din ang natanggap: ang login page o pagtanggi ng proxy ay maaaring isang dokumentong ganap na naiiba sa hiniling na pahina, hindi isang pagkabigo sa pag-decode dito.

Kaugnay na mga artikulo