تقنية

Charset في بايثون: هل ترميز الرأس يحدد ترميز الجسم؟

إعدادا الرأس والجسم لكائن UTF8
كائن المثال. [1] [2]

نقرأ إعدادًا من واجهة البريد القديمة Compat32. [1] [2]

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

لا؛ للرأس والجسم إعدادان قد يختلفان. [1] [2]

  • المقارنة تطبع True True. [1] [2]
  • رأس كائن utf-8 له SHORTEST، وجسمه BASE64. [1] [2]
  • get_body_encoding() يعيد النص base64 هنا. [1] [2]
  • تغيير header_encoding إلى QP يبقي الجسم BASE64 في فحصنا. [1] [2]
  • اختبرنا إعدادات 3.12.14؛ لم نُرمّز رسالة أو نرسل بريدًا. [1] [2]

المثال

from email.charset import Charset,SHORTEST,BASE64
c=Charset('utf-8')
print(c.header_encoding==SHORTEST,c.body_encoding==BASE64)
print(c.get_body_encoding())

[1] [2]

إعداد الرأس وإعداد الجسم

الإعداد هنا صفة للكائن. SHORTEST يعني اختيار الأقصر بين quoted-printable وbase64 للرأس؛ لا يجوز استعماله إعدادًا للجسم. قراءة اسم ترميز الجسم ليست نص الجسم المرمز. [1] [2]

تغيير الرأس وبقاء إعداد الجسم
تغيير صفة واحدة. [1] [2]

تغيير واحد وحدود الفحص

في كائن جديد، نضع c.header_encoding=QP بعد استيراد الثابت. يبقى c.body_encoding==BASE64 صحيحًا، ويبقى الاسم base64. أما تغيير إعداد الجسم إلى QP فيعيد quoted-printable. لم نغير السجل العام أو نختبر طي الرؤوس أو وصول بريد. [1] [2]

المراجع

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

للتوسع: بحث عن لغات البرمجة

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