URL Encoding
Mã hóa URL (Mã hóa Phần trăm)
Cơ chế mã hóa ký tự đặc biệt trong URL bằng cách thay thế chúng bằng dấu phần trăm theo sau là giá trị byte thập lục phân (ví dụ: khoảng trắng trở thành %20), đảm bảo URL vẫn hợp lệ và không mơ hồ.
Chi tiết kỹ thuật
Mã hóa phần trăm (RFC 3986) chuyển đổi mỗi byte của biểu diễn UTF-8 của ký tự thành định dạng %HH. Các ký tự không bảo lưu (A-Z, a-z, 0-9, -, _, ., ~) không bao giờ được mã hóa. Các ký tự bảo lưu (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) chỉ được mã hóa khi chúng không phục vụ mục đích bảo lưu. JavaScript cung cấp encodeURIComponent() (mã hóa mọi thứ trừ không bảo lưu) và encodeURI() (bảo toàn các ký tự cấu trúc URL). Định dạng application/x-www-form-urlencoded được sử dụng trong gửi biểu mẫu mã hóa khoảng trắng dưới dạng + thay vì %20.
Ví dụ
```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'
```