मैं एक सिनात्रा आवेदन (http://analyzethis.espace-technologies.com) है जो निम्नरूबी 1.9.1 में एक निश्चित एन्कोडिंग के लिए नेट :: HTTP प्रतिक्रिया को कैसे परिवर्तित करें?
- करता है एक HTML पृष्ठ को पुनः प्राप्त (शुद्ध के माध्यम से/http)
- response.body
- से एक Nokogiri दस्तावेज़ बनाएँ कुछ जानकारी निकालें और भेजने के लिए प्रतिक्रिया में वापस। प्रतिक्रिया यूटीएफ -8 एन्कोडेड
तो मैं उन साइटों को पढ़ने की कोशिश करते समय समस्या आई, जो विंडोज़-1256 एन्कोडिंग जैसे www.filfan.com या www.masrawy.com का उपयोग करते हैं।
समस्या यह है कि एन्कोडिंग रूपांतरण का परिणाम सही नहीं है हालांकि कोई त्रुटि नहीं फेंक दी गई है।
शुद्ध/http response.body.encoding देता ASCII-8bit जो करने के लिए परिवर्तित नहीं किया जा सकता UTF-8
मैं Nokogiri :: एचटीएमएल (response.body) और सीएसएस चयनकर्ताओं का उपयोग कुछ पाने के लिए करते हैं पृष्ठ से सामग्री - उदाहरण के लिए शीर्षक टैग की सामग्री कहें - मुझे एक स्ट्रिंग मिलती है, जब मैं स्ट्रिंग.नकोडिंग को कॉल करता हूं विन्डोज़-1256। मैं string.encode ("utf-8") का उपयोग करता हूं और इसका उपयोग करके प्रतिक्रिया भेजता हूं लेकिन फिर प्रतिक्रिया सही नहीं होती है।
मेरे दृष्टिकोण में क्या गलत है इसके बारे में कोई सुझाव या विचार?
यह बहुत अच्छा काम करता है! –