कई बार हमें डेटा से निपटने की आवश्यकता होती है जिसमें हमेशा नियमित ASCII वर्ण नहीं होते हैं। उदाहरण के लिए, अंग्रेजी के अलावा किसी अन्य भाषा में एक ईमेल। पायथन में MIME (बहुउद्देशीय इंटरनेट मेल एक्सटेंशन) आधारित मॉड्यूल का उपयोग करके ऐसे पात्रों से निपटने के लिए तंत्र है। इस लेख में हम देखेंगे कि हम ईमेल में या कुछ सीधे इनपुट में ऐसे पात्रों को कैसे डीकोड कर सकते हैं।
ईमेल पैकेज का उपयोग करना
ईमेल पैकेज में माइम और चारसेट जैसे मॉड्यूल होते हैं जो नीचे दिए गए उदाहरण में दिखाए गए अनुसार एन्कोडिंग और डिकोडिंग कार्य कर सकते हैं। हमने यूनिकोड वर्णों वाला एक ईमेल संदेश लिया है और फिर उसे utf-8 में एन्कोड किया है।
उदाहरण
import email.mime, email.mime.nonmultipart, email.charset
msg=email.mime.nonmultipart.MIMENonMultipart('text', 'plain', charset='utf-8')
#Construct a new charset
cs=email.charset.Charset('utf-8')
cs.body_encoding = email.charset.QP
# Set the content using the new charset
msg.set_payload(u'This is the text containing ünicöde', 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 का उपयोग करना
यह पायथन मॉड्यूल उद्धृत-मुद्रण योग्य परिवहन एन्कोडिंग और डिकोडिंग करता है। उद्धृत-मुद्रण योग्य एन्कोडिंग डेटा के लिए डिज़ाइन किया गया है जहां अपेक्षाकृत कुछ गैर-मुद्रण योग्य वर्ण हैं। नीचे दिए गए उदाहरण में हम देखते हैं कि कैसे हम गैर नियमित ASCII वर्णों के साथ स्ट्रिंग को एन्कोड और डिकोड कर सकते हैं।
उदाहरण
import quopri
str1 = 'äé'
#encoded = quopri.encodestring('äé'.encode('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' äé