Cách tốt hơn:
encodeURIComponent thoát tất cả các ký tự ngoại trừ các ký tự sau:alphabetic, decimal digits, - _ . ! ~ * ' ( )
Để tránh các yêu cầu không mong muốn đến máy chủ, bạn nên gọi encodeURIComponent trên bất kỳ tham số nào do người dùng nhập sẽ được chuyển qua như một phần của URI. Ví dụ: người dùng có thể nhập "Thyme & time = again" cho một nhận xét thay đổi. Không sử dụng encodeURIComponent trên biến này sẽ cho nhận xét = Thyme% 20 & time = lần nữa. Lưu ý rằng ký hiệu và dấu bằng đánh dấu một cặp khóa và giá trị mới. Vì vậy, thay vì có khóa nhận xét POST bằng "Thyme & time = again", bạn có hai khóa POST, một bằng với "Thyme" và một (thời gian) khác bằng lần nữa.
Đối với ứng dụng / x-www-form-urlencoding (POST), mỗi http://www.w3.org/TR/html401/interac...m-content-type , các khoảng trắng sẽ được thay thế bằng '+', vì vậy người ta có thể muốn theo dõi thay thế mã hóa bằng thay thế bổ sung "% 20" bằng "+".
Nếu một người muốn nghiêm ngặt hơn trong việc tuân thủ RFC 3986 (dự trữ !, ', (,) Và *), mặc dù các ký tự này không sử dụng phân định URI chính thức, có thể sử dụng một cách an toàn:
function fixedEncodeURIComponent (str) {
return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A");
}
$.param
.