تقنية

BytesParser في بايثون: هل يتغير Subject مع السياسة؟

مقارنة الرأس المشفر والحرف العربي مع سياستين
قراءة رأسنا. [1] [2] [3]

نقرأ رأسًا مشفرًا من رسالة مؤلفة. [1] [2] [3]

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

نعم؛ حدد السياسة صراحة. [1] [2] [3]

  • في نسختنا، الافتراضية compat32. [1] [2] [3]
  • تبقي تمثيل الرأس المشفر هنا. [1] [2] [3]
  • مع policy.default يظهر الحرف ع. [1] [2] [3]
  • الرأس الحديث كائن من صنف مشتق من str. [1] [2] [3]
  • لم تتغير بايتات الإدخال؛ لم نرسل بريدًا. [1] [2] [3]
  • نطاقنا 3.12.14 دون مرفقات أو رؤوس معطوبة. [1] [2] [3]

المثال

from email.parser import (
 BytesParser as B)
from email import policy as p
t='=?utf-8?b?2Lk=?='
m=('Subject: '+t+'\r\n\r\n').encode()
print(B().parsebytes(m)['Subject'])
r=B(policy=p.default).parsebytes(m)
print(str(r['Subject']))

[1] [2] [3]

الناتجان =?utf-8?b?2Lk=?= ثم ع. [1] [2] [3]

القيمة والسياسة

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

بايتات الإدخال ثابتة مع ظهور الحرف المفكوك
الإدخال ثابت. [1] [2] [3]

حدود المثال

رأس قصير بترميز محدد. لم نفحص المرفقات أو الرؤوس المعطوبة، ولا نضمن النتيجة لكل إصدار. [1] [2] [3]

المراجع

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

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