ప్రాక్సీ డౌన్లోడ్ తర్వాత 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 పేరు మరియు ఆధార URI ను అంగీకరిస్తుంది. శూన్య charset దాని డాక్యుమెంట్ చేసిన గుర్తింపు మరియు ఫాల్బ్యాక్ ప్రవర్తనకు అనుమతిస్తుంది; తెలిసిన మరియు సరైన HTTP charset ఉద్దేశపూర్వకంగా అందించాలి. ఆధార URI సాపేక్ష లింకులకు సందర్భాన్ని ఇస్తుంది.
బైట్లు తప్పుగా డీకోడ్ అయిన తర్వాత, ఫలిత String ను మరో charset తో పార్స్ చేయడం అసలు వచనాన్ని తిరిగి ఇవ్వదు. బైట్లు మరియు ప్రతిస్పందన మెటాడేటా వద్దకు తిరిగి వెళ్లండి. అందుకున్నదాన్ని కూడా పోల్చండి: ప్రాక్సీ లాగిన్ పేజీ లేదా తిరస్కరణ అభ్యర్థించిన పేజీకి పూర్తిగా భిన్నమైన పత్రం కావచ్చు, అందులో డీకోడింగ్ వైఫల్యం కాదు.