التابع bytes.decode()
في بايثون
يفك التابع ترميز البايتات الممرّرة إليه إلى سلسلة نصية.
البنية العامة
bytes.decode(encoding="utf-8", errors="strict")
المعاملات
encoding
يحدّد هذا المعامل الترميز الذي سيستخدمه التابع في عمله، ويأخذ القيمة الافتراضية 'utf-8'
. وللاطلاع على قائمة بالترميزات المتاحة راجع قسم الترميزات القياسية.
ملاحظة: يسمح تمرير المعامل encoding
إلى السلسلة النصية بفك ترميز أي كائن شبيه بالبايت bytes-like object على نحو مباشر، دون الحاجة إلى إنشاء كائن بايتات أو كائن مصفوفة بايتات مؤقت.
errors
يحدّد المعامل error
الطريقة المطلوبة للتعامل مع الأخطاء. يأخذ هذا المعامل القيمة الافتراضية 'strict'
والتي تعني أنّه في حال حدوث أخطاء أثناء عملية فك الترميز فسيطلق التابع الخطأ UnicodeError
.
يمكن أن يأخذ هذا المعامل قيمًا أخرى هي 'ignore'
و 'replace'
و 'backslashreplace'
، وأي اسم مسجّل بواسطة الدالة codecs.register_error()
.
ملاحظة: أصبح هذا التابع يدعم المعاملات المفتاحية منذ الإصدار 3.1 من اللغة.
أمثلة
يوضّح المثال التالي النتائج المعادة من تطبيق التابع باستخدام معاملات متنوعة:
>>> b'\x80abc'.decode("utf-8", "strict")
Traceback (most recent call last):
...
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0:
invalid start byte
>>> b'\x80abc'.decode("utf-8", "replace")
'\ufffdabc'
>>> b'\x80abc'.decode("utf-8", "backslashreplace")
'\\x80abc'
>>> b'\x80abc'.decode("utf-8", "ignore")
'abc'
انظر أيضًا
- السلاسل النصية في بايثون.
- البايتات في بايثون.
- مصفوفات البايتات في بايثون.
- الدالة
bytes.fromhex()
: فك ترميز سلسلة نصية تتضمن أعداد ست عشرية إلى كائن bytes. - الدالة
bytes.hex()
: ترميز كائن bytes إلى سلسلة نصية تتضمن عددين ستّ عشريين مقابل كلّ بايت.