প্রক্সি ডাউনলোডের পরে jsoup-এ অক্ষর এনকোডিং ত্রুটি
HTML পার্সের মধ্য দিয়ে প্রতিক্রিয়ার এনকোডিং তথ্য সংরক্ষণ করে প্রক্সিতে লোড করা পৃষ্ঠার বিকৃত অক্ষর নির্ণয় করুন।
পৃষ্ঠাটি প্রক্সির মাধ্যমে লোড হয়, কিন্তু উচ্চারণচিহ্নযুক্ত অক্ষরগুলো বিকৃত হয়ে ফিরে আসে। প্রক্সি বদলানোর আগে প্রতিক্রিয়ার বাইটগুলো 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 নাম ও একটি base URI গ্রহণ করে। null charset তার নথিভুক্ত শনাক্তকরণ ও ফলব্যাক আচরণকে অনুমতি দেয়; জানা ও সঠিক HTTP charset ইচ্ছাকৃতভাবে বহন করা উচিত। base URI আপেক্ষিক লিংকের জন্য প্রসঙ্গ যোগায়।
বাইটগুলো ভুলভাবে ডিকোড হওয়ার পরে ফলাফল String-টি অন্য charset দিয়ে পার্স করলে মূল লেখা ফিরে আসে না। বাইট ও প্রতিক্রিয়ার মেটাডেটায় ফিরে যান। কী পাওয়া গেছে তাও তুলনা করুন: প্রক্সির লগইন পৃষ্ঠা বা প্রত্যাখ্যান অনুরোধ করা পৃষ্ঠার চেয়ে সম্পূর্ণ ভিন্ন নথি হতে পারে, সেটিতে ডিকোডিং ব্যর্থতা নয়।