Sayfa proxy üzerinden yükleniyor, ancak aksanlı harfler bozuk olarak dönüyor. Proxy'yi değiştirmeden önce yanıt baytlarının Java String'e dönüştüğü ilk noktayı bulun. Açık bir charset belirtmeyen InputStreamReader bu kararı jsoup belgeyi görmeden önce verebilir.

jsoup getirmeyi kendisi yaptığında, yanıtı ayrıştırmaya kadar bir arada tutun:

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

Yanıt API'si Content-Type'tan türetilen charset bilgisini sunar. Sunucunun bildiriminin yanlış olduğunu tespit ettiğinizde açık bir charset geçersiz kılmasını da kabul eder. Proxy adresi tek başına belgenin hangi karakter kodlamasını kullandığını söylemez. Proxy hesabı olmadan izin verilen bir genel sayfa karşılaştırması gerekiyorsa, örnekteki HTTP ana bilgisayarını ve bağlantı noktasını HTTP proxy listesinden bir adayla değiştirin ve aynı kodlama kontrollerini koruyun.

Başka bir HTTP istemcisi bir InputStream sağlarsa, jsoup'un akış ayrıştırma aşırı yüklemesi bir charset adı ve temel URI kabul eder. Null charset, belgelenmiş algılama ve geri dönüş davranışına izin verir; bilinen ve doğru bir HTTP charset kasıtlı olarak aktarılmalıdır. Temel URI göreli bağlantılar için bağlam sağlar.

Baytlar yanlış çözüldükten sonra, elde edilen String'i başka bir charset ile ayrıştırmak özgün metni geri kazandırmaz. Baytlara ve yanıt üst verilerine geri dönün. Alınanı da karşılaştırın: proxy'nin giriş sayfası veya reddi, istenen sayfadan tamamen farklı bir belge olabilir; içindeki bir çözme hatası değil.

İlgili makaleler