الفرق بين المراجعتين لصفحة: «Python/bytes/decode»
لا ملخص تعديل |
لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الدالة <code>bytes.decode()</code> في بايثون}}</noinclude> | <noinclude>{{DISPLAYTITLE:الدالة <code>bytes.decode()</code> في بايثون}}</noinclude> | ||
تفك الدالة ترميز البايتات الممرّرة إليها إلى [[Python/str|سلسلة نصية]]. | |||
== البنية العامة == | == البنية العامة == | ||
سطر 17: | سطر 17: | ||
يحدّد المعامل <code>error</code> الطريقة المطلوبة للتعامل مع الأخطاء. يأخذ هذا المعامل القيمة الافتراضية <code>'strict'</code> والتي تعني أنّه في حال حدوث أخطاء أثناء عملية فك الترميز فستطلق الدالة الخطأ <code>UnicodeError</code>. | يحدّد المعامل <code>error</code> الطريقة المطلوبة للتعامل مع الأخطاء. يأخذ هذا المعامل القيمة الافتراضية <code>'strict'</code> والتي تعني أنّه في حال حدوث أخطاء أثناء عملية فك الترميز فستطلق الدالة الخطأ <code>UnicodeError</code>. | ||
يمكن أن يأخذ هذا المعامل قيمًا أخرى هي <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> | |||
== انظر أيضًا == | == انظر أيضًا == | ||
سطر 28: | سطر 43: | ||
== مصادر == | == مصادر == | ||
* [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 Function]] | ||
[[تصنيف:Python Built-in Functions]] | [[تصنيف:Python Built-in Functions]] |
مراجعة 18:54، 12 مايو 2018
تفك الدالة ترميز البايتات الممرّرة إليها إلى سلسلة نصية.
البنية العامة
b.decode()
المعاملات
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'