কম্পিউটার টিউটোরিয়াল

পাইথনে MIME quoted-printable ডেটা এনকোড ও ডিকোড করা

অনেক সময় আমাদের এমন ডেটা নিয়ে কাজ করতে হয় যাতে রেগুলার ASCII ক্যারেক্টার নাও থাকে। উদাহরণস্বরূপ, ইংরেজি ছাড়া অন্য কোনো ভাষার ইমেইল। পাইথনে MIME (Multipurpose Internet Mail Extensions) ভিত্তিক মডিউল আছে যাতে এই ক্যারেক্টারগুলো হ্যান্ডেল করা যায়। এই আর্টিকেলে আমরা দেখব কিভাবে ইমেইল বা সিম্পল ইনপুটে এমন ক্যারেক্টার ডিকোড করা যায়।

email প্যাকেজ ব্যবহার করে

email প্যাকেজে mime এবং charset মডিউল আছে যা এনকোডিং এবং ডিকোডিংয়ের কাজ করে। নিচের উদাহরণে একটি ইউনিকোড ক্যারেক্টার সম্বলিত ইমেইল মেসেজ নেওয়া হয়েছে এবং সেটিকে 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 \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) ট্রান্সপোর্ট এনকোডিং এবং ডিকোডিং করে। কোটেড-প্রিন্টেবল এনকোডিং সেটি ডিজাইন করা হয়েছে সেসব ডেটার জন্য যেখানে কম নন-প্রিন্টেবল ক্যারেক্টার থাকে। নিচের উদাহরণে দেখানো হয়েছে কিভাবে নন-রেগুলার ASCII ক্যারেক্টার সম্বলিত স্ট্রিং এনকোড এবং ডিকোড করা যায়।

উদাহরণ

import quopri

str1 = '\xe4\xe9'  # äé
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'
äé
  1. পাইথনে ডেটা অ্যানালিসিস ও ভিজুয়ালাইজেশন (Python Data Analysis and Visualization)

  2. পাইথন এবং Scrapy দিয়ে ওয়েব স্ক্রেপিং

  3. পাইথনে ডেটা অ্যানালাইসিস ও ভিজ্যুয়ালাইজেশন (pandas, matplotlib)

  4. পাইথনে Base64 ডেটা এনকোডিং (base64 মডিউল)