تقنية

ensure_ascii في بايثون: هل False يبقي السطر الجديد حرفيًا؟

العربية في المخرج
حروف الأصل. [1] [2] [3]

الحرف غير ASCII يختلف عن محرف التحكم. [1] [2] [3]

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

لا؛ يبقى السطر الجديد ممثلًا بتتابع إفلات في نص JSON. [1] [2] [3]

  • مدخلنا الباء ثم سطر جديد ثم التاء. [1] [2] [3]
  • مع False تبقى الحروف العربية في المخرج. [1] [2] [3]
  • يتحول محرف السطر إلى شرطة عكسية ثم n. [1] [2] [3]
  • لا يحوي المخرج محرف سطر جديد؛ وفكه يعيد الأصل. [1] [2] [3]
  • اختبرنا 3.12.14 ونصًا مفردًا؛ الناتج str. [1] [2] [3]

المثال

from json import JSONEncoder,JSONDecoder
raw='ب\nت'
text=JSONEncoder(ensure_ascii=False).encode(raw)
print(text)
print('\n' in text)
print(JSONDecoder().decode(text)==raw)

[1] [2] [3]

الحرف والمحرف

المصدر هنا يبقي إفلات محارف التحكم مع هذا الخيار. يظهر النص المرمز "ب\nت" في سطر واحد، ثم False وTrue. رمزا التتابع 92 و110؛ محرف السطر الأصلي 10. [1] [2] [3]

السطر ممثل بتتابع
إفلات السطر. [1] [2] [3]

النطاق

الخيار لا يختار ترميز بايتات ملف. فحص غياب السطر يخص النص المفرد في مثالنا؛ قد تضيف إعدادات تنسيق الحاويات أسطرًا خارج السلسلة. [1] [2] [3]

المراجع

  1. Python 3.12: JSONEncoder.ensure_ascii
  2. CPython 3.12.14: json/encoder.py
  3. CPython 3.12.14: _json.c
  4. موضوع تك: لغة بايثون — مفردات
  5. موضوع تك: تطبيقات بايثون — مفردات

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

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