मुझे विभिन्न वेब पृष्ठों (विभिन्न साइटों पर) से प्राप्त पाठ के यूनिकोड वर्णों से निपटने में समस्याएँ आ रही हैं। मैं सुंदर का उपयोग कर रहा हूँ।
समस्या यह है कि त्रुटि हमेशा प्रतिलिपि प्रस्तुत करने योग्य नहीं होती है; यह कभी-कभी कुछ पृष्ठों के साथ काम करता है, और कभी-कभी, यह फेंकने से बारफ हो जाता है UnicodeEncodeError
। मैंने हर उस चीज़ के बारे में कोशिश की है जिसके बारे में मैं सोच सकता हूँ, और फिर भी मुझे ऐसा कुछ भी नहीं मिला है जो बिना किसी प्रकार की यूनिकोड-संबंधी त्रुटि को फेंकने के बिना लगातार काम करता हो।
समस्याओं के कारण कोड का एक भाग नीचे दिखाया गया है:
agent_telno = agent.find('div', 'agent_contact_number')
agent_telno = '' if agent_telno is None else agent_telno.contents[0]
p.agent_info = str(agent_contact + ' ' + agent_telno).strip()
जब स्निपेट को ऊपर चलाया जाता है, तो कुछ स्टिंग्स पर एक स्टैक ट्रेस उत्पन्न होता है:
Traceback (most recent call last):
File "foobar.py", line 792, in <module>
p.agent_info = str(agent_contact + ' ' + agent_telno).strip()
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 20: ordinal not in range(128)
मुझे संदेह है कि ऐसा इसलिए है क्योंकि कुछ पृष्ठ (या अधिक विशेष रूप से, कुछ साइटों के पृष्ठ) एन्कोडेड हो सकते हैं, जबकि अन्य अनएन्कोड हो सकते हैं। सभी साइटें यूके में आधारित हैं और यूके की खपत के लिए उपलब्ध डेटा प्रदान करती हैं - इसलिए आंतरिककरण या अंग्रेजी के अलावा किसी अन्य चीज़ में लिखे गए टेक्स्ट से निपटने के लिए कोई समस्या नहीं है।
क्या किसी के पास कोई विचार है कि इसे कैसे हल किया जाए ताकि मैं इस समस्या को ठीक कर सकूं?
import os; import locale; os.environ["PYTHONIOENCODING"] = "utf-8"; myLocale=locale.setlocale(category=locale.LC_ALL, locale="en_GB.UTF-8"); ... print(myText.encode('utf-8', errors='ignore'))
।
$ export PYTHONIOENCODING=utf8