Earráidí ionchódaithe carachtar jsoup tar éis íoslódála trí sheachfhreastalaí
Déan diagnóis ar charachtair mhearbhallaigh ar leathanach a lódáiltear trí sheachfhreastalaí trí fhaisnéis ionchódaithe an fhreagra a choinneáil le linn an anailíse HTML.
Lódáiltear an leathanach trí sheachfhreastalaí, ach tagann litreacha le haccent ar ais mearbhallaigh. Sular athraíonn tú seachfhreastalaí, aimsigh an chéad áit a n-athraíonn bearta an fhreagra ina Java String. Is féidir le InputStreamReader gan charset follasach an cinneadh sin a dhéanamh sula bhfeiceann jsoup an doiciméad.
Nuair a láimhseálann jsoup an t-íoslódáil, coinnigh an freagra le chéile go dtí an anailís:
Connection.Response response = Jsoup
.connect("https://www.example.com/catalog")
.proxy("proxy.example", 8080)
.execute();
Document page = response.parse();Nochtann API an fhreagra faisnéis charset a dhíorthaítear ó Content-Type. Is féidir leis freisin sárú charset follasach a ghlacadh nuair a bheidh sé dearbhaithe agat go bhfuil dearbhú an fhreastalaí mícheart. Ní insíonn seoladh seachfhreastalaí ann féin cén ionchódú carachtar a úsáideann an doiciméad. Má theastaíonn comparáid cheadaithe leathanach poiblí uait gan cuntas seachfhreastalaí, cuir óstach agus port HTTP an tsampla in ionad iarrthóra ó liosta na seachfhreastalaithe HTTP, agus na seiceálacha ionchódaithe céanna á gcoimeád agat.
Má sholáthraíonn cliant HTTP eile InputStream, glacann an t-ualú anailíse srutha de chuid jsoup le hainm charset agus le bun-URI. Ligeann charset nialasach dá bhrath agus dá iompar cúltaca atá doiciméadaithe; ba cheart charset HTTP atá ar eolas agus ceart a iompar go toiliúil. Soláthraíonn an bun-URI comhthéacs do naisc choibhneasta.
Nuair a bheidh na bearta díchódaithe go mícheart, ní aisghabhann anailís an String a thagann as le charset eile an téacs bunaidh. Fill ar na bearta agus ar mheiteashonraí an fhreagra. Déan comparáid freisin leis an méid a fuarthas: féadfaidh leathanach logála isteach nó diúltú seachfhreastalaí a bheith ina dhoiciméad iomlán difriúil ón leathanach a iarradh, seach gur theip díchódaithe ann é.