developer_modeتطوير الويب جافاسكربت

الفرق بين encodeURIComponent() و encodeURI() في JavaScript

عند التعامل مع الروابط في JavaScript، من الضروري ترميز النصوص بطريقة تحافظ على صلاحية الرابط. هذا المقتطف يشرح الفرق العملي بين encodeURIComponent() و encodeURI() ومتى يُفضل استخدام كلٍ منهما.

يُستخدم encodeURIComponent() و encodeURI() لترميز النصوص في الروابط (URLs)، ولكن لكلٍ منهما استخدام مختلف حسب السياق. هذا المقتطف يوضح الفرق بينهما ومتى يستخدم كل منهما.

أوجه المقارنة

الخاصيةencodeURIComponent()encodeURI()
الغرض الأساسيترميز جزء من الرابط (مثل قيم المعاملات في الاستعلام)ترميز الرابط كاملاً دون الإخلال ببنيته
الرموز التي يقوم بترميزها:, /, ?, &, =, # وغيرها من الرموز الخاصةلا يُرمّز الرموز: :, /, ?, &, =, #
متى يُستخدم؟عند ترميز قيمة مفردة داخل الرابطعند ترميز رابط كامل
مثال على المُدخل"hello world & name=ِAli""https://example.com/test?name=Ali Ola"
الناتجhello%20world%20%26%20name%3DAlihttps://example.com/test?name=Ali%20Ola

الخلاصة

  • ✔️ استخدم encodeURIComponent() عندما تريد ترميز مدخلات المستخدم أو أجزاء من الرابط.
  • ✔️ استخدم encodeURI() عندما تحتاج إلى ترميز رابط كامل ولكن دون التأثير على بنية الرابط الأصلية.

جدول الترميز باستخدام النسب المئوية

الرمزالترميز
(مسافة)%20
$%24
&%26
' (علامة اقتباس مفردة)%27
(%28
)%29
*%2A
+%2B
,%2C
/%2F
:%3A
;%3B
=%3D
?%3F
@%40
[%5B
]%5D
^%5E
_%5F
{%7B
**``**
}%7D
~%7E