English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يستخدم طريقة encode() للخط النصي الترميز المحدد لترميز النص. إذا لم يتم تحديد الترميز، سيتم استخدام UTF-8.
من بداية بايثون 3.0،النصيتم تخزينه بصيغة Unicode، أيالنصيتم تمثيل كل حرف في هذا النص بمعادلة نصية. لذلك، يكون كل نص مجرد سلسلة من نقاط النص.
للحفاظ على هذه النصوص بشكل فعال، يتم تحويل سلسلة من نقاط النص إلى مجموعة من الثمانيات. يتم هذا العمل فيالترميز.
هناك أنواع مختلفة من الترميز، ويختلف معالجة النصوص بينها. من بين الترميزات الشائعةUTF-8،ASCIIالخ.
باستخدام دالة encode() للخط النصي، يمكنك تحويل الخط النصي غير المترميز إلى أي ترميز يدعمه بايثون. بالافتراض، يستخدم بايثونUTF-8الترميز.
نحو دالة encode() هو:
string.encode(encoding='UTF-8',errors='strict')
بالافتراض، لا تحتاج دالة encode() إلى أي معلمات.
يستعيد إصدار الترميز UTF-8 للخط النصي. إذا حدث خطأ، سيُطلق استثناء UnicodeDecodeError.
لكن، يحتاج إلى إثنين من المعلمات:
encoding -يجب ترميز النص باستخدام هذا النوع من الترميز
errors-الاستجابة عند فشل الترميز. هناك ستة أنواع من استجابات الأخطاء
strict-الاستجابة الافتراضية، تسبب في حالات الفشل في إطلاق استثناء UnicodeDecodeError
ignore-تخطي Unicode غير القابلة للترميز من النتيجة
replace-تبديل Unicode غير القابلة للترميز إلى علامة الاستفهام؟
xmlcharrefreplace-إدراج مرجع XML بدلاً من Unicode غير القابلة للترميز
backslashreplace-إدراج سلسلة المسافات المكونة من أربعة حروف بدلاً من Unicode غير القابلة للترميز
namereplace-إدراج سلسلة النقاط النهائية \ N {...} بدلاً من Unicode غير القابلة للترميز
# نص Unicode string = 'pythön!' # عرض النص print('النص:', string) # الترميز الافتراضي هو utf-8 string_utf = string.encode() # عرض النتيجة print('إصدار الترميز هو:', string_utf)
عند تشغيل هذا البرنامج، الناتج سيكون:
النص: b'pythön!' إصدار الترميز هو: b'pyth\xc3\xb6n!'
# نص Unicode string = 'pythön!' # عرض النص print('النص:', string) # خطأ ignore print('إصدار النص بعد الترميز (ignore) :', string.encode("ascii", "ignore")) # خطأ التبديل print('إصدار النص بعد الترميز (replace) :', string.encode("ascii", "replace"))
عند تشغيل هذا البرنامج، الناتج سيكون:
النص: b'pythön!' إصدار النص بعد الترميز (ignore) : b'pythn!' إصدار النص بعد الترميز (replace) : b'pyth?n!'
ملاحظة:تجربة مختلفة من الرموز النصية والمعلمات الإضافية.