URL Encoding
ترميز URL (الترميز بالنسبة المئوية)
آلية لترميز الأحرف الخاصة في عناوين URL عن طريق استبدالها بعلامة النسبة المئوية متبوعة بقيم البايت السداسية العشرية (مثل المسافة تصبح %20)، مما يضمن بقاء عناوين URL صالحة وغير غامضة.
التفاصيل التقنية
يحول الترميز بالنسبة المئوية (RFC 3986) كل بايت من تمثيل UTF-8 للحرف إلى تنسيق %HH. لا يتم ترميز الأحرف غير المحجوزة (A-Z وa-z و0-9 و- و_ و. و~) أبدًا. يتم ترميز الأحرف المحجوزة (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) فقط عندما لا تخدم غرضها المحجوز. يوفر JavaScript encodeURIComponent() (يرمز كل شيء ما عدا غير المحجوزة) وencodeURI() (يحافظ على أحرف بنية URL). يرمز تنسيق application/x-www-form-urlencoded المستخدم في إرسال النماذج المسافات كـ + بدلاً من %20.
مثال
```javascript
// URL encode/decode
encodeURIComponent('hello world & more');
// → 'hello%20world%20%26%20more'
decodeURIComponent('hello%20world');
// → 'hello world'
// Build query string
const params = new URLSearchParams({ q: 'pdf merge', page: '1' });
params.toString(); // 'q=pdf+merge&page=1'
```