تقنية

Header في بايثون: هل str يعطي نتيجة encode نفسها؟

str يعرض ب وencode يعرض تمثيل MIME للحرف
قيمة مختارة وتمثيلان. [1] [2]

نقارن تمثيلين لرأس مؤلف بحرف عربي. [1] [2]

الخلاصة السريعة

لا؛ يختلف النصان في هذا المثال. [1] [2]

  • نستخدم Header من واجهة البريد القديمة. [1] [2]
  • القيمة ب والترميز المعلن utf-8. [1] [2]
  • يعيد str(h) الحرف هنا. [1] [2]
  • يعيد encode تمثيل MIME؛ كلا الناتجين str. [1] [2]
  • اختبرنا 3.12.14 دون إرسال بريد. [1] [2]

المثال

from email.header import Header
h=Header('ب','utf-8')
print(str(h))
print(h.encode())

[1] [2]

المخرجان ب ثم =?utf-8?b?2Kg=?=. [1] [2]

الشكل والنوع

النوع النصي مشترك، لكن التمثيل مختلف. ليست encode هنا تحويلًا إلى bytes؛ ظهر تمثيل ASCII للقيمة المختارة. [1] [2]

نوع ناتجي str وencode هو str هنا
الشكل يختلف دون تغيير النوع هنا. [1] [2]

حدود التجربة

المقارنة لرأس قصير بترميز محدد. قد تختلف الأشكال والتفاف الأسطر؛ لا نعمم على واجهة EmailMessage الحديثة أو كل الرؤوس. [1] [2]

المراجع

  1. Python: email.header
  2. CPython 3.12.14: email/header.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.