Барак прокси аркылуу жүктөлөт, бирок диакритикалык белгилүү тамгалар бузулуп кайтат. Проксини алмаштыруудан мурун, жооптун байттары Java String болуп калган биринчи жерди табыңыз. Так charset жок InputStreamReader бул чечимди jsoup документти көрө электе кабыл алышы мүмкүн.

jsoup жүктөөнү өзү аткарганда, жоопту талдоого чейин бирге кармаңыз:

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

Жооп API Content-Type'тан алынган charset маалыматын көрсөтөт. Сервердин билдирүүсү туура эмес экенин аныктаган учурда ал charsetти ачык алмаштырууну да кабыл алат. Прокси дареги өзү документтин кайсы белгилерди коддоо ыкмасын колдонушун айтпайт. Прокси эсеби жок уруксат берилген коомдук баракты салыштыруу керек болсо, мисалдагы HTTP хостун жана портун HTTP проксилер тизмесинен талапкер менен алмаштырыңыз, ошол эле коддоо текшерүүлөрүн сактап.

Эгер башка HTTP кардары InputStream берсе, jsoup агымдык талдоо жүктөмү charset атын жана базалык URI кабыл алат. Null charset анын документтелген аныктоо жана камдык жүрүм-турумуна жол берет; белгилүү жана туура HTTP charset атайын өткөрүлүшү керек. Базалык URI салыштырмалуу шилтемелерге контекст берет.

Байттар туура эмес декоддолгондон кийин, алынган Stringди башка charset менен талдоо баштапкы текстти калыбына келтирбейт. Байттарга жана жооп метаберилишине кайтыңыз. Ошондой эле алынган нерсени салыштырыңыз: проксинин кирүү барагы же баш тартуусу суралган барактан таптакыр башка документ болушу мүмкүн, андагы декоддоо алсыздыгы эмес.

Тектеш макалалар