Mã hóa URL (mã hóa phần trăm) là quá trình chuyển đổi các ký tự không an toàn trong URL thành định dạng %XX. URL chỉ có thể chứa một tập con nhỏ của ký tự ASCII (chữ cái, chữ số, -_.~), tất cả các ký tự khác (bao gồm tiếng Trung, khoảng trắng, ký tự đặc biệt) phải được mã hóa trước khi truyền trong URL. Ví dụ: khoảng trắng thành %20, ký tự Trung Quốc '中' thành %E4%B8%AD.
**encodeURIComponent vs encodeURI**: Đây là hai hàm mã hóa được sử dụng phổ biến nhất. encodeURIComponent mã hóa kỹ lưỡng hơn, bao gồm các dấu phân cách tham số như &, =, ?, nên phù hợp để mã hóa từng giá trị tham số. encodeURI giữ nguyên cấu trúc URL (scheme://, đường dẫn, /, ?, #), nên phù hợp để mã hóa URL đầy đủ. Sử dụng sai dẫn đến lỗi phân tích tham số.
**RFC 3986 vs các tiêu chuẩn cũ**: RFC 3986 coi dấu ngã ~ là ký tự an toàn không cần mã hóa, trong khi các tiêu chuẩn đầu tiên mã hóa nó thành %7E. Sử dụng RFC 3986 giảm thoát không cần thiết, cải thiện khả năng đọc URL và tránh các vấn đề phân tích %7E trên một số máy chủ.
**Chế độ Query Only**: Được sử dụng khi bạn chỉ muốn mã hóa giá trị tham số trong query string URL, mà không thay đổi tên khóa, dấu bằng và ký tự &. Ví dụ: ?name=张三 được mã hóa thành ?name=%E5%BC%A0%E4%B8%89, giữ nguyên tên khóa có thể đọc được và chỉ mã hóa giá trị.
**Đánh dấu mã hóa**: Làm nổi bật các ký tự ở định dạng %XX bằng màu hổ phách theo thời gian thực, để người dùng có thể thấy ngay những ký tự nào đã được mã hóa. Điều này giúp hiểu quy tắc mã hóa: chữ cái và số thường là ký tự an toàn không được mã hóa, chỉ tiếng Trung và ký tự đặc biệt mới được mã hóa. Tất cả các phép tính được thực hiện cục bộ trên trình duyệt, không có dữ liệu nào được tải lên.