الفرق بين المراجعتين لصفحة: «Python/bytes/decode»

من موسوعة حسوب
< Python‏ | bytes
لا ملخص تعديل
ط استبدال النص - ':الدالة' ب':التابع'
 
(4 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الدالة <code>bytes.decode()‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:التابع <code>bytes.decode()‎</code> في بايثون}}</noinclude>
ترمّز الدالة البايتات إلى [[Python/str|سلسلة نصية]].
يفك التابع ترميز البايتات الممرّرة إليه إلى [[Python/str|سلسلة نصية]].


== البنية العامة ==
== البنية العامة ==
<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">
b.decode()
bytes.decode(encoding="utf-8", errors="strict")
</syntaxhighlight>
</syntaxhighlight>


سطر 10: سطر 10:


=== <code>encoding</code> ===
=== <code>encoding</code> ===
يحدّد هذا المعامل الترميز الذي ستستخدمه الدالة في عملها، ويأخذ القيمة الافتراضية <code>'utf-8'</code>. وللاطلاع على قائمة بالترميزات المتاحة راجع [https://docs.python.org/3/library/codecs.html#standard-encodings قسم الترميزات القياسية].
يحدّد هذا المعامل الترميز الذي سيستخدمه التابع في عمله، ويأخذ القيمة الافتراضية <code>'utf-8'</code>. وللاطلاع على قائمة بالترميزات المتاحة راجع [https://docs.python.org/3/library/codecs.html#standard-encodings قسم الترميزات القياسية].


'''ملاحظة:''' يسمح تمرير المعامل <code>encoding</code> إلى السلسلة النصية بفك ترميز أي كائن شبيه بالبايت bytes-like object على نحو مباشر، دون الحاجة إلى إنشاء [[Python/bytes|كائن بايتات]] أو كائن [[Python/bytearray|مصفوفة بايتات]] مؤقت.
'''ملاحظة:''' يسمح تمرير المعامل <code>encoding</code> إلى السلسلة النصية بفك ترميز أي كائن شبيه بالبايت bytes-like object على نحو مباشر، دون الحاجة إلى إنشاء [[Python/bytes|كائن بايتات]] أو كائن [[Python/bytearray|مصفوفة بايتات]] مؤقت.


=== <code>errors</code> ===
=== <code>errors</code> ===
يحدّد المعامل <code>error</code> الطريقة المطلوبة للتعامل مع الأخطاء. يأخذ هذا المعامل القيمة الافتراضية <code>'strict'</code> والتي تعني أنّه في حال حدوث أخطاء أثناء عملية فك الترميز فستطلق الدالة الخطأ <code>UnicodeError</code>.
يحدّد المعامل <code>error</code> الطريقة المطلوبة للتعامل مع الأخطاء. يأخذ هذا المعامل القيمة الافتراضية <code>'strict'</code> والتي تعني أنّه في حال حدوث أخطاء أثناء عملية فك الترميز فسيطلق التابع الخطأ <code>[[Python/built-in exceptions#UnicodeError|UnicodeError]]</code>.


يمكن أن يأخذ هذا المعامل قيمًا أخرى هي <code>'‎'ignore'</code>، <code>'replace</code>، وأي اسم مسجّل بواسطة الدالة <code>codecs.register_error()</code>‎ .
يمكن أن يأخذ هذا المعامل قيمًا أخرى هي <code>'ignore'‎</code> و ‎<code>'replace'</code> و ‎<code>'backslashreplace'‎</code>، وأي اسم مسجّل بواسطة الدالة <code>codecs.register_error()</code>‎ .


'''ملاحظة:''' أصبحت هذه الدالة تدعم المعاملات المفتاحية منذ الإصدار 3.1 من اللغة.
'''ملاحظة:''' أصبح هذا التابع يدعم المعاملات المفتاحية منذ الإصدار 3.1 من اللغة.
 
== أمثلة ==
يوضّح المثال التالي النتائج المعادة من تطبيق التابع باستخدام معاملات متنوعة:<syntaxhighlight lang="python3">
>>> 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'
</syntaxhighlight>


== انظر أيضًا ==
== انظر أيضًا ==
سطر 25: سطر 40:
* [[Python/bytes|البايتات في بايثون.]]
* [[Python/bytes|البايتات في بايثون.]]
* [[Python/bytearray|مصفوفات البايتات في بايثون.]]
* [[Python/bytearray|مصفوفات البايتات في بايثون.]]
* الدالة <code>[[Python/bytes/fromhex|bytes.fromhex()‎]]</code>: فك ترميز سلسلة نصية تتضمن أعداد ست عشرية إلى كائن bytes.
* الدالة <code>[[Python/bytes/hex|bytes.hex()‎]]</code>: ترميز كائن bytes إلى سلسلة نصية تتضمن عددين ستّ عشريين مقابل كلّ بايت.


== مصادر ==
== مصادر ==
* [https://docs.python.org/3/library/stdtypes.html#bytes.decode قسم decode في صفحة Types في توثيق بايثون الرسمي.]
* [https://docs.python.org/3/library/stdtypes.html#bytes.decode قسم decode في صفحة Types في توثيق بايثون الرسمي.]
* [https://docs.python.org/3/howto/unicode.html#the-string-type قسم The string type في صفحة Unicode HOWTO في توثيق بايثون الرسمي.]


[[تصنيف:Python]]
[[تصنيف:Python]]
[[تصنيف:Python Function]]
[[تصنيف:Python Method]]
[[تصنيف:Python Built-in Functions]]
[[تصنيف:Python Types]]
[[تصنيف:Python Bytes]]

المراجعة الحالية بتاريخ 11:59، 10 يونيو 2018

يفك التابع ترميز البايتات الممرّرة إليه إلى سلسلة نصية.

البنية العامة

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'

انظر أيضًا

مصادر