ପୃଷ୍ଠାଟି ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ଲୋଡ୍ ହୁଏ, କିନ୍ତୁ ଉଚ୍ଚାରଣ ଚିହ୍ନ ଥିବା ଅକ୍ଷରଗୁଡ଼ିକ ବିକୃତ ହୋଇ ଫେରିଆସେ। ପ୍ରକ୍ସି ବଦଳାଇବା ପୂର୍ବରୁ ପ୍ରତିକ୍ରିୟାର ବାଇଟଗୁଡ଼ିକ 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 ଗ୍ରହଣ କରେ। ଶୂନ୍ୟ charset ଏହାର ପ୍ରଲେଖିତ ଚିହ୍ନଟ ଓ ଫଲବ୍ୟାକ୍ ଆଚରଣକୁ ଅନୁମତି ଦିଏ; ଜଣାଶୁଣା ଓ ସଠିକ୍ HTTP charset ଜାଣିଶୁଣି ଆଗକୁ ବଢ଼ାଇବା ଉଚିତ। ଆଧାର URI ସାପେକ୍ଷ ଲିଙ୍କ ପାଇଁ ପ୍ରସଙ୍ଗ ଦିଏ।

ବାଇଟଗୁଡ଼ିକ ଭୁଲ ଭାବରେ ଡିକୋଡ୍ ହେବା ପରେ ଫଳାଫଳ String କୁ ଅନ୍ୟ charset ସହ ପାର୍ସ କଲେ ମୂଳ ପାଠ ଫେରିଆସେ ନାହିଁ। ବାଇଟ ଓ ପ୍ରତିକ୍ରିୟାର ମେଟାଡାଟା ନିକଟକୁ ଫେରନ୍ତୁ। ଯାହା ଗ୍ରହଣ ହେଲା ତାହାର ମଧ୍ୟ ତୁଳନା କରନ୍ତୁ: ପ୍ରକ୍ସିର ଲଗଇନ ପୃଷ୍ଠା କିମ୍ବା ଅସ୍ୱୀକୃତି ଅନୁରୋଧିତ ପୃଷ୍ଠାଠାରୁ ସମ୍ପୂର୍ଣ୍ଣ ଭିନ୍ନ ଦସ୍ତାବେଜ ହୋଇପାରେ, ସେଥିରେ ଡିକୋଡିଂ ବିଫଳତା ନୁହେଁ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ