2014-06-23 10 views
15

मैं वेबपृष्ठों का विश्लेषण करने और टर्मिनल पर देखे गए वेबपृष्ठों के नाम को प्रिंट करने के लिए सुंदर सूप का उपयोग कर रहा हूं। हालांकि, अक्सर वेबपृष्ठ के नाम पर एक ही दाएं (\ u2018) और (\ u2019) वर्ण जो पाइथन प्रिंट नहीं कर सकता है क्योंकि यह आकर्षक एन्कोडिंग त्रुटि देता है। क्या इन पात्रों को हटाने का कोई तरीका है?हटा रहा है u2018 और u2019 चरित्र

+0

कृपया अपना कुछ कोड और अपना आउटपुट और अपेक्षित आउटपुट जोड़ें। बेहतर समाधान तैयार करना अच्छा होगा –

+2

नोट: यू + 2018 = बाएं सिंगल कोटेशन मार्क, यू + 201 9 = दायां सिंगल कोटेशन मार्क –

उत्तर

26

ये कोड एकल बाएं और दाएं उद्धरण वर्णों के लिए यूनिकोड हैं। आप जो अजगर किसी भी समस्या के लिए अपने सिस्टम पर प्रिंट नहीं करना चाहिए था उनके ASCII बराबर के साथ उन्हें जगह ले सकता है:

>>> print u"\u2018Hi\u2019" 
‘Hi’ 
>>> print u"\u2018Hi\u2019".replace(u"\u2018", "'").replace(u"\u2019", "'") 
'Hi' 
वैकल्पिक रूप से regex के साथ

:

import re 
s = u"\u2018Hi\u2019" 
>>> print re.sub(u"(\u2018|\u2019)", "'", s) 
'Hi' 

हालांकि अजगर किसी भी समस्या यूनिकोड मुद्रण नहीं होना चाहिए इनके संस्करण भी। यह संभव है कि आप str() कहीं भी उपयोग कर रहे हैं जो आपके यूनिकोड को एएससीआई में बदलने और अपना अपवाद फेंकने का प्रयास करेगा।

संबंधित मुद्दे