الفرق بين المراجعتين لصفحة: «Python/urllib/parse/quote»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>urllib.parse.quote()</code> في بايثون}}</noinclude> تستبدل الدالة الحروف الخاصة في...' |
|||
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الدالة <code>urllib.parse.quote()</code> في بايثون}}</noinclude> | <noinclude>{{DISPLAYTITLE:الدالة <code>urllib.parse.quote()</code> في بايثون}}</noinclude> | ||
تستبدل الدالة الحروف الخاصة في السلسلة النصية المعطاة باستخدام علامة التهريب %xx. | تستبدل الدالة الحروف الخاصة في السلسلة النصية المعطاة باستخدام علامة التهريب <code>%xx</code>. | ||
== البنية العامة == | == البنية العامة == | ||
سطر 11: | سطر 11: | ||
== المعاملات == | == المعاملات == | ||
=== safe === | === <code>safe</code> === | ||
يحدّد هذا المعامل محارف ASCII الإضافية التي يجب على الدالة أن لا تحيطها بعلامات اقتباس. يحمل هذا المعامل القيمة الافتراضية '/'. | يحدّد هذا المعامل محارف ASCII الإضافية التي يجب على الدالة أن لا تحيطها بعلامات اقتباس. يحمل هذا المعامل القيمة الافتراضية <code>'/'</code>. | ||
=== string === | === <code>string</code> === | ||
يمكن أن يكون سلسلة نصية أو كائن bytes. | يمكن أن يكون [[Python/str|سلسلة نصية]] أو كائن [[PHP/array sorting|bytes]]. | ||
ملاحظة: | '''ملاحظة:''' | ||
اعتُمد المعيار RFC 3986 عوضًا عن المعيار RFC 2396 لاقتباس سلاسل URL النصية في الإصدار 3.7 من بايثون، وقد أضيف الرمز <code>"~"</code> إلى مجموعة المحارف المحجوزة. | |||
=== <code>encoding</code> و <code>errors</code> === | |||
يجدر التنبيه إلى أنّ الدالة quote(string, safe, encoding, errors) مكافئة للدالة quote_from_bytes(string.encode(encoding, errors), safe). | يحدّد هذان المعاملان طريقة تعامل الدالة مع الحروف الخارجة عن الترميز ASCII، وكما هو مقبول في التابع <code>[[Python/str/encode|str.encode()]]</code>. يأخذ المعامل <code>encoding</code> القيمة الافتراضية <code>'utf-8'</code>، أما المعامل <code>errors</code> فيأخذ القيمة الافتراضية <code>'strict'</code> والتي تعني أنّ الحروف غير المدعومة ستتسبب في إطلاق الاستثناء <code>UnicodeEncodeError</code>. يجب عدم إعطاء قيمة للمعاملين <code>encoding</code> و <code>errors</code> إن كانت السلسلة النصية المعطاة من نوع <code>[[Python/bytes|bytes]]</code> وإلا فإنّ الدالة ستُطلق الاستثناء <code>TypeError</code>. | ||
يجدر التنبيه إلى أنّ الدالة <code>quote(string, safe, encoding, errors)</code> مكافئة للدالة <code>quote_from_bytes(string.encode(encoding, errors), safe)</code>. | |||
== أمثلة == | == أمثلة == | ||
سطر 38: | سطر 39: | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* الدالة <code>[[Python/urllib/parse/quote plus|urllib.parse.quote_plus()]]</code>: هذه الدالة مشابهة للدالة <code>quote()</code> ولكنّها تستبدل المسافات الفارغة بعلامات <code>+</code>. | |||
* الدالة <code>[[Python/urllib/parse/quote from bytes|urllib.parse.quote_from_bytes()]]</code>: تشبه هذه الدالة الدالة <code>quote()</code> ولكنّها تستقبل كائنات bytes عوضًا عن كائنات <nowiki/>[[Python/str|str]]، ولا تؤدي عمليات الترميز من السلاسل النصية إلى البايتات. | |||
* الدالة <code>[[Python/urllib/parse/unquote|urllib.parse.unquote()]]</code>: تحوّل الدالة الحروف المهرّبة بالصيغة <code>%xx</code> إلى الحروف الأصلية المكافئة لها. | |||
* الدالة <nowiki/>[[Python/urllib/parse/unquote plus|<code>urllib.parse.unquote_plus()</code>]]: هذه الدالة مشابهة للدالة <code>[[Python/urllib/parse/unquote|unquote()]]</code> ولكنّها تستبدل علامات <code>+</code> بالمسافات البيضاء، وهذا هو المطلوب عند إلغاء الاقتباس من قيم نماذج HTML. | |||
* الدالة <code>[[Python/urllib/parse/unquote to bytes|urllib.parse.unquote_to_bytes()]]</code>: تحول الدالة الحروف المهرّبة بالصيغة <code>%xx</code> إلى القيمة الثمانية المفردة المقابلة لها، وتعيد كائن <code>[[Python/bytes|bytes]]</code>. | |||
* الدالة <code>[[Python/urllib/parse/urlencode|urllib.parse.urlencode()]]</code>: تحوّل الدالة كائن ربط mapping object أو تسلسلًا من صفوف ذات عنصرين، والتي قد تحتوي على كائنات <code>[[Python/str/encode|str]]</code> أو <code>[[Python/bytes|bytes]]</code> إلى سلسلة نصية مرمّزة بالنسبة المئوية ضمن الترميز ASCII. | |||
== مصادر == | == مصادر == |
المراجعة الحالية بتاريخ 20:30، 5 فبراير 2019
تستبدل الدالة الحروف الخاصة في السلسلة النصية المعطاة باستخدام علامة التهريب %xx
.
البنية العامة
urllib.parse.quote(string, safe='/', encoding=None, errors=None)
المعاملات
safe
يحدّد هذا المعامل محارف ASCII الإضافية التي يجب على الدالة أن لا تحيطها بعلامات اقتباس. يحمل هذا المعامل القيمة الافتراضية '/'
.
string
يمكن أن يكون سلسلة نصية أو كائن bytes.
ملاحظة:
اعتُمد المعيار RFC 3986 عوضًا عن المعيار RFC 2396 لاقتباس سلاسل URL النصية في الإصدار 3.7 من بايثون، وقد أضيف الرمز "~"
إلى مجموعة المحارف المحجوزة.
encoding
و errors
يحدّد هذان المعاملان طريقة تعامل الدالة مع الحروف الخارجة عن الترميز ASCII، وكما هو مقبول في التابع str.encode()
. يأخذ المعامل encoding
القيمة الافتراضية 'utf-8'
، أما المعامل errors
فيأخذ القيمة الافتراضية 'strict'
والتي تعني أنّ الحروف غير المدعومة ستتسبب في إطلاق الاستثناء UnicodeEncodeError
. يجب عدم إعطاء قيمة للمعاملين encoding
و errors
إن كانت السلسلة النصية المعطاة من نوع bytes
وإلا فإنّ الدالة ستُطلق الاستثناء TypeError
.
يجدر التنبيه إلى أنّ الدالة quote(string, safe, encoding, errors)
مكافئة للدالة quote_from_bytes(string.encode(encoding, errors), safe)
.
أمثلة
يبين المثال التالي طريقة عمل الدالة:
>>> import urllib.parse
>>> urllib.parse.quote('/El Niño/')
'/El%20Ni%C3%B1o/'
انظر أيضًا
- الدالة
urllib.parse.quote_plus()
: هذه الدالة مشابهة للدالةquote()
ولكنّها تستبدل المسافات الفارغة بعلامات+
. - الدالة
urllib.parse.quote_from_bytes()
: تشبه هذه الدالة الدالةquote()
ولكنّها تستقبل كائنات bytes عوضًا عن كائنات str، ولا تؤدي عمليات الترميز من السلاسل النصية إلى البايتات. - الدالة
urllib.parse.unquote()
: تحوّل الدالة الحروف المهرّبة بالصيغة%xx
إلى الحروف الأصلية المكافئة لها. - الدالة
urllib.parse.unquote_plus()
: هذه الدالة مشابهة للدالةunquote()
ولكنّها تستبدل علامات+
بالمسافات البيضاء، وهذا هو المطلوب عند إلغاء الاقتباس من قيم نماذج HTML. - الدالة
urllib.parse.unquote_to_bytes()
: تحول الدالة الحروف المهرّبة بالصيغة %xx
إلى القيمة الثمانية المفردة المقابلة لها، وتعيد كائنbytes
. - الدالة
urllib.parse.urlencode()
: تحوّل الدالة كائن ربط mapping object أو تسلسلًا من صفوف ذات عنصرين، والتي قد تحتوي على كائناتstr
أوbytes
إلى سلسلة نصية مرمّزة بالنسبة المئوية ضمن الترميز ASCII.