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