Halaman dimuat melalui proksi, tetapi huruf beraksen kembali kacau. Sebelum mengganti proksi, temukan tempat pertama byte respons menjadi Java String. InputStreamReader tanpa charset eksplisit dapat mengambil keputusan itu sebelum jsoup melihat dokumen.

Ketika jsoup menangani pengambilan, jaga respons tetap utuh hingga penguraian:

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

API respons mengekspos informasi charset yang berasal dari Content-Type. API ini juga dapat menerima penggantian charset eksplisit ketika Anda telah memastikan bahwa deklarasi server salah. Alamat proksi saja tidak memberi tahu Anda pengodean karakter mana yang digunakan dokumen. Jika Anda memerlukan perbandingan halaman publik yang diizinkan tanpa akun proksi, ganti host dan port HTTP pada contoh dengan kandidat dari daftar proksi HTTP, sambil mempertahankan pemeriksaan pengodean yang sama.

Jika klien HTTP lain menyediakan InputStream, kelebihan penguraian aliran jsoup menerima nama charset dan URI dasar. Charset null memungkinkan deteksi dan perilaku cadangan yang didokumentasikan; charset HTTP yang diketahui dan benar harus diteruskan secara sengaja. URI dasar menyediakan konteks untuk tautan relatif.

Setelah byte didekodekan secara keliru, menguraikan String yang dihasilkan dengan charset lain tidak memulihkan teks asli. Kembalilah ke byte dan metadata respons. Bandingkan juga apa yang diterima: halaman masuk atau penolakan proksi bisa menjadi dokumen yang sama sekali berbeda dari halaman yang diminta, bukan kegagalan pendekodean di dalamnya.

Artikel terkait