تقنية

ترميز XMLGenerator: هل يستبدل Ω داخل StringIO؟

بقاء المحرف في مخزن نصي
تفسير توضيحي [2]

نوع مخزن الخرج يغيّر النتيجة. [2]

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

لا؛ يبقى المحرف في المخزن النصي هنا. [2]

  • encoding هو iso-8859-1. [1] [2]
  • StringIO يبقي Ω. [2]
  • BytesIO ينتج Ω. [2]
  • العنصر bud في الحالتين. [2]
  • فحص CPython 3.12.14؛ بلا startDocument. [2]

المخزنان

encoding هو iso-8859-1. [1] [2]

from io import StringIO,BytesIO
from xml.sax.saxutils import XMLGenerator as G
for cls in (StringIO,BytesIO):
 out=cls()
 g=G(out,encoding="iso-8859-1")
 g.startElement("bud",{})
 g.characters("Ω")
 g.endElement("bud")
 print(out.getvalue())

[1] [2]

مسار الكاتب

النتيجة: المخزن النصي لا يمر بمحوّل الترميز الذي يهيئه المصدر للمخزن الثنائي. [2]

مرجع محرف في مخزن ثنائي
تفسير توضيحي [2]

التحكم والنطاق

مع utf-8، المخزن الثنائي يحمل بايتات Ω. [2]

فحص CPython 3.12.14؛ بلا startDocument. [2]

نفحص مدخلًا مؤلفًا؛ لا نقرأ مستندًا ولا نختبر كاتبًا مخصصًا. [2]

المراجع

  1. Python 3.12: SAX utilities
  2. CPython 3.12.14: XML writer
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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

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