Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन का उपयोग करके MIME quoted-printable डेटा एन्कोड और डिकोड करें

कई बार हमें ऐसे डेटा से निपटना पड़ता है जिसमें हमेशा नियमित ASCII वर्ण नहीं होते। उदाहरण के लिए, अंग्रेजी के अलावा किसी अन्य भाषा में एक ईमेल। पायथन में MIME (मल्टीपर्पस इंटरनेट मेल एक्सटेंशन्स) आधारित मॉड्यूल का उपयोग करके ऐसे वर्णों से निपटने की व्यवस्था है। इस लेख में हम देखेंगे कि हम ईमेल में या सीधे इनपुट में ऐसे वर्णों को कैसे डिकोड कर सकते हैं।

email पैकेज का उपयोग करके

email पैकेज में mime और charset मॉड्यूल्स होते हैं जो नीचे दिए गए उदाहरण में दिखाए अनुसार एन्कोडिंग और डिकोडिंग का काम कर सकते हैं। हमने यूनिकोड वर्णों वाला एक ईमेल संदेश लिया और फिर इसे utf-8 में एन्कोड किया।

उदाहरण


import email.mime, email.mime.nonmultipart, email.charset

msg = email.mime.nonmultipart.MIMENonMultipart('text', 'plain', charset='utf-8')

# एक नया चारसेट बनाएं
cs = email.charset.Charset('utf-8')
cs.body_encoding = email.charset.QP

# नए चारसेट का उपयोग करके कंटेंट सेट करें
msg.set_payload(u'This is the text containing \u00fcnic\u00f6de', charset=cs)
print(msg)

उपरोक्त कोड चलाने से हमें निम्न परिणाम मिलता है:

आउटपुट

Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
This is the text containing =C3=BCnic=C3=B6de

quopri का उपयोग करके

यह पायथन मॉड्यूल quoted-printable ट्रांसपोर्ट एन्कोडिंग और डिकोडिंग करता है। quoted-printable एन्कोडिंग उन डेटा के लिए डिज़ाइन किया गया है जहां अपेक्षाकृत कम नॉन-प्रिंटेबल वर्ण होते हैं। नीचे दिए गए उदाहरण में हम देखते हैं कि हम गैर-नियमित ASCII वर्णों वाली स्ट्रिंग को कैसे एन्कोड और डिकोड कर सकते हैं।

उदाहरण


import quopri

str1 = '\xe4\xe9'  # äé UTF-8 में
encoded = quopri.encodestring(str1.encode('utf-8'))
print(encoded)

str2 = '=C3=A4=C3=A9'
decoded_string = quopri.decodestring(str2)
print(decoded_string.decode('utf-8'))

उपरोक्त कोड चलाने से हमें निम्न परिणाम मिलता है:

आउटपुट

b'=C3=A4=C3=A9'
äé

quoted-printable एन्कोडिंग नियम:

  • प्रिंटेबल ASCII वर्ण (33-126, '=' को छोड़कर) → जैसे के तैसे
  • स्पेस और टैब → जैसे के तैसे (लाइन अंत में नहीं)
  • अन्य सभी बाइट्स → =XX फॉर्मेट में (XX = हेक्स मान)
  • लाइन लंबाई सीमा: 76 वर्ण (सॉफ्ट लाइन ब्रेक =\n के साथ)

उपयोग के मामले:

  • ईमेल संदेश एन्कोडिंग
  • अंतर्राष्ट्रीय वर्णों वाला वेब फॉर्म डेटा
  • विविध एन्कोडिंग वाले डेटा का सुरक्षित ट्रांसपोर्ट
  1. पायथन और Scrapy का उपयोग करके वेब स्क्रैपिंग पायथन और Scrapy का उपयोग करके वेब स्क्रैपिंग

    क्रॉलर विकसित करने के लिए सबसे अच्छे फ्रेमवर्क में से एक scrapy है। Scrapy एक लोकप्रिय वेब स्क्रैपिंग और क्रॉलिंग फ्रेमवर्क है जो वेबसाइटों को स्क्रैप करना आसान बनाने के लिए हाई-लेवल फंक्शनलिटी का उपयोग करता है। इंस्टॉलेशन विंडोज में scrapy इंस्टॉल करना आसान है: हम या तो pip या conda (यदि आपके पास

  1. पायथन में डेटा विश्लेषण और विज़ुअलाइज़ेशन पायथन में डेटा विश्लेषण और विज़ुअलाइज़ेशन

    पायथन डेटा विश्लेषण और विज़ुअलाइज़ेशन के लिए कई लाइब्रेरी प्रदान करता है मुख्य रूप से numpy, pandas, matplotlib, seaborn आदि। इस खंड में, हम डेटा विश्लेषण और विज़ुअलाइज़ेशन के लिए pandas लाइब्रेरी पर चर्चा करने जा रहे हैं जो numpy के ऊपर बनी एक ओपन सोर्स लाइब्रेरी है। यह हमें तेजी से विश्लेषण और डे

  1. पायथन का उपयोग करके Base64 डेटा एन्कोडिंग पायथन का उपयोग करके Base64 डेटा एन्कोडिंग

    base64 मॉड्यूल में फंक्शन बाइनरी डेटा को ASCII के एक सबसेट में अनुवादित करते हैं जो प्लेनटेक्स्ट प्रोटोकॉल का उपयोग करके ट्रांसमिशन के लिए उपयुक्त है। एन्कोडिंग और डिकोडिंग फंक्शन RFC 3548 में विनिर्देशों को लागू करते हैं, जो Base16, Base32, और Base64 एल्गोरिदम को परिभाषित करता है, और डी-फैक्टो मान