Stafatáknsvillur í jsoup eftir niðurhal í gegnum milliþjón
Greindu skakka stafi á síðu sem hlaðin er í gegnum milliþjón með því að varðveita kóðunarupplýsingar svarsins í gegnum HTML-greininguna.
Síðan hleðst í gegnum milliþjóninn, en stafir með broddmerkjum koma skakkir til baka. Áður en þú skiptir um milliþjón, finndu fyrsta staðinn þar sem bætin í svarinu verða Java String. InputStreamReader án skýrs charset getur tekið þá ákvörðun áður en jsoup sér skjalið.
Þegar jsoup sér um niðurhalið, haltu svarinu saman þar til greiningin fer fram:
Connection.Response response = Jsoup
.connect("https://www.example.com/catalog")
.proxy("proxy.example", 8080)
.execute();
Document page = response.parse();Svar-API-ið birtir charset-upplýsingar sem eru dregnar af Content-Type. Það getur líka tekið við skýrri charset-yfirskrifun þegar þú hefur staðfest að yfirlýsing netþjónsins sé röng. Milliljónsheimilisfang eitt og sér segir þér ekki hvaða stafakóðun skjalið notar. Ef þú þarft leyfilegan samanburð á opinberri síðu án milliþjónsreiknings skaltu skipta HTTP-hýsilnum og portinu í dæminu út fyrir frambjóðanda úr HTTP-milliþjónslistanum, meðan þú heldur sömu kóðunarprófunum.
Ef annar HTTP-viðskiptavinur útvegar InputStream tekur straumgreiningarútgáfa jsoup við charset-heiti og grunn-URI. Null charset leyfir skjalfesta skynjun og varabirtingu; þekkt og rétt HTTP charset ætti að flytjast viljandi. Grunn-URI-ið veitir samhengi fyrir afstæða hlekki.
Þegar bætin hafa einu sinni verið afkóðuð rangt endurheimtir greining á tilvonandi String með öðru charset ekki upprunalega textann. Farðu aftur í bætin og lýsigögn svarsins. Berðu líka saman það sem barst: innskráningarsíða eða synjun milliþjóns getur verið algjörlega annað skjal en umbeðna síðan, frekar en afkóðunarvilla í henni.