გვერდი იტვირთება პროქსის მეშვეობით, მაგრამ დიაკრიტიკული ნიშნების მქონე ასოები დამახინჯებული ბრუნდება. სანამ პროქსის შეცვლით, იპოვეთ პირველი ადგილი, სადაც პასუხის ბაიტები Java String-ად იქცევა. InputStreamReader ცხადი charset-ის გარეშე შეიძლება ამ გადაწყვეტილების მიღებამდე მოვიდეს, ვიდრე 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-ით ანალიზი არ აღადგენს თავდაპირველ ტექსტს. დაბრუნდით ბაიტებთან და პასუხის მეტამონაცემებთან. ასევე შეადარეთ მიღებული: პროქსის შესვლის გვერდი ან უარი შეიძლება სრულიად სხვა დოკუმენტი იყოს, ვიდრე მოთხოვნილი გვერდი, და არა მასში დეკოდირების წარუმატებლობა.

დაკავშირებული სტატიები