ترميز عنوان URL

لا يمكن أن تكون بعض الأحرف جزءًا من عنوان URL (على سبيل المثال، المساحة)، ولبعض الأحرف الأخرى معنى خاص في عنوان URL. في نماذج HTML، يتم استخدام الحرف = لفصل اسم عن قيمة. تستخدم البنية العامة لعنوان URL ترميز عنوان URL للتعامل مع هذه المشكلة، في حين تُجري نماذج HTML بعض الاستبدالات الإضافية بدلاً من تطبيق ترميز النسبة المئوية على جميع هذه الأحرف.

على سبيل المثال، يتم ترميز المسافات في سلسلة باستخدام %20 أو استبدالها بعلامة الجمع (+). إذا كنت تستخدم حرف علامة الشرطة المائلة (|) كفاصل، احرص على ترميز علامة الشرطة المائلة على أنّها %7C. يجب ترميز الفاصلة في سلسلة على النحو التالي: %2C.

ننصحك باستخدام مكتبات إنشاء عناوين URL العادية في منصتك ليقوم الترميز تلقائيًا بترميز عناوين URL، وذلك لضمان تجاوز عناوين URL بشكلٍ صحيح في منصتك.

إنشاء عنوان URL صالح

قد تعتقد أنّ عنوان URL "صالح" هو أمر واضح، ولكن هذا ليس صحيحًا تمامًا. على سبيل المثال، قد يحتوي عنوان URL الذي يتم إدخاله في شريط العناوين في browser على أحرف خاصة (مثل "上海+中國")، ويجب أن يترجم المتصفّح تلك الأحرف داخليًا إلى ترميز مختلف قبل الإرسال. وبالمثل، فإنّ أي رمز ينشئ إدخال UTF-8 أو يقبله قد يتعامل مع عناوين URL التي تحتوي على أحرف UTF-8 على أنّها "صالحة"، ولكنّه سيحتاج أيضًا إلى ترجمة هذه الأحرف قبل إرسالها إلى خادم ويب. تُعرف هذه العملية باسم ترميز عناوين URL أو ترميز النسبة المئوية.

الرموز الخاصة

نحتاج إلى ترجمة الأحرف الخاصة لأنّه يجب أن تمتثل كل عناوين URL للبنية المحدّدة في مواصفات معرّف موارد Uniform (URI). وهذا يعني في الواقع أنّه يجب أن تتضمّن عناوين URL مجموعة فرعية خاصة من أحرف ASCII فقط: الرموز الأبجدية الرقمية المألوفة، وبعض الأحرف المحجوزة لاستخدامها كرموز التحكّم داخل عناوين URL. ويلخّص هذا الجدول هذه الأحرف:

ملخّص لأحرف عناوين URL الصالحة
تأهّبالأحرفاستخدام عنوان URL
أحرف أبجدية رقمية a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 سلاسل النصوص واستخدام المخطّط (http) والمنفذ (8080) وما إلى ذلك
غير محجوز - _ . ~ سلاسل النصوص
تم الحجز ! * ' ( ) ; : @ & = + $ , / ? % # [ ] أحرف التحكّم و/أو السلاسل النصية

عند إنشاء عنوان URL صالح، يجب التأكّد من أنّه لا يحتوي إلا على الأحرف المعروضة في جدول. يؤدي جعل عنوان URL متوافقًا مع هذه المجموعة من الأحرف بشكل عام إلى حدوث مشكلتَين، إحداهما متعلقة بالإغفال والأخرى متعلقة بالاستبدال:

  • الأحرف التي تريد التعامل معها موجودة خارج المجموعة أعلاه. على سبيل المثال، يجب ترميز الأحرف المكتوبة بلغات أجنبية مثل 上海+中國 باستخدام الأحرف أعلاه. وفقًا للعرف الشائع، غالبًا ما يتم تمثيل المسافات (التي لا يُسمح بها ضمن عناوين URL) باستخدام الرمز '+' بدلاً من الرمز (+).
  • تظهر الأحرف ضمن المجموعة أعلاه كأحرف محجوزة، ولكن يجب استخدامها حرفيًا. على سبيل المثال، يتم استخدام الرمز ? ضمن عناوين URL للإشارة إلى بداية سلسلة طلب البحث. إذا أردت استخدام السلسلة "? and the Mysterions"، عليك ترميز الحرف '?'.

يتم ترميز جميع الأحرف التي سيتم ترميزها باستخدام عنوان URL باستخدام الحرف '%' وقيمة سداسية تشكل حرفين مطابقة لحرف UTF-8. على سبيل المثال، سيتم ترميز 上海+中國 بترميز UTF-8 لعنوان URL على النحو التالي: %E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B. سيتم ترميز السلسلة? and the Mysterians باستخدام عنوان URL على النحو التالي:%3F+and+the+Mysterians أو %3F%20and%20the%20Mysterians.

الأحرف الشائعة التي تحتاج إلى ترميز

في ما يلي بعض الأحرف الشائعة التي يجب ترميزها:

حرف غير آمن القيمة المشفّرة
مسافة %20
" %22
< %3C
> %3E
# %23
% %25
| %7C

قد يكون أحيانًا تحويل عنوان URL الذي تتلقّاه من إدخال المستخدمين معقدًا. على سبيل المثال، قد يُدخل المستخدم عنوانًا على النحو التالي: "شارع 5&Main". بشكل عام، يجب إنشاء عنوان URL من أجزائه، مع التعامل مع أي إدخال من المستخدمين كأحرف حرفية.

بالإضافة إلى ذلك، تقتصر عناوين URL على 16384 حرفًا لجميع خدمات الويب في Google Maps Platform وواجهات برمجة التطبيقات الثابتة للويب. في معظم الخدمات، نادرًا ما يتم الاقتراب من هذا الحد الأقصى لعدد الأحرف. ومع ذلك، يُرجى العِلم أنّ بعض الخدمات تتضمّن عدة مَعلمات قد تؤدي إلى ظهور عناوين URL طويلة.