Halaman dimuatkan melalui proksi, tetapi huruf beraksen kembali kacau. Sebelum menukar proksi, cari tempat pertama bait respons menjadi Java String. InputStreamReader tanpa charset eksplisit boleh membuat keputusan itu sebelum jsoup melihat dokumen.

Apabila jsoup mengendalikan pengambilan, kekalkan respons bersama sehingga penghuraian:

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

API respons mendedahkan maklumat charset yang diperoleh daripada Content-Type. Ia juga boleh menerima penggantian charset eksplisit apabila anda telah memastikan pengisytiharan pelayan itu salah. Alamat proksi sahaja tidak memberitahu anda pengekodan aksara mana yang digunakan oleh dokumen. Jika anda memerlukan perbandingan halaman awam yang dibenarkan tanpa akaun proksi, gantikan hos dan port HTTP contoh dengan calon daripada senarai proksi HTTP, sambil mengekalkan semakan pengekodan yang sama.

Jika klien HTTP lain membekalkan InputStream, lebihan penghuraian aliran jsoup menerima nama charset dan URI asas. Charset nol membenarkan pengesanan dan tingkah laku sandaran yang didokumenkan; charset HTTP yang diketahui dan betul harus dipindahkan secara sengaja. URI asas memberikan konteks untuk pautan relatif.

Setelah bait dinyahkod secara salah, menghuraikan String yang terhasil dengan charset lain tidak memulihkan teks asal. Kembali kepada bait dan metadata respons. Bandingkan juga apa yang diterima: halaman log masuk atau penolakan proksi mungkin dokumen yang sama sekali berbeza daripada halaman yang diminta, bukan kegagalan penyahkodan di dalamnya.

Artikel berkaitan