Tôi sẽ cung cấp một sự thay thế lẻ bóng. Đôi khi, việc sử dụng mã hóa khác nhau sẽ dễ dàng hơn, đặc biệt nếu bạn đang xử lý nhiều hệ thống khác nhau mà không xử lý các chi tiết về mã hóa URL theo cùng một cách. Đây không phải là cách tiếp cận chủ đạo nhất nhưng có thể có ích trong một số tình huống.
Thay vì mã hóa URL dữ liệu, bạn có thể mã hóa 64 dữ liệu. Lợi ích của việc này là dữ liệu được mã hóa rất chung chung, chỉ bao gồm các ký tự alpha và đôi khi là dấu =
. Thí dụ:
Chuỗi mảng JSON:
["option", "Fred's dog", "Bill & Trudy", "param=3"]
Dữ liệu đó, được mã hóa URL dưới dạng data
param:
"data=%5B%27option%27%2C+%22Fred%27s+dog%22%2C+%27Bill+%26+Trudy%27%2C+%27param%3D3%27%5D"
Tương tự, mã hóa base64:
"data=WyJvcHRpb24iLCAiRnJlZCdzIGRvZyIsICJCaWxsICYgVHJ1ZHkiLCAicGFyYW09MyJd"
Cách tiếp cận base64 có thể ngắn hơn một chút, nhưng quan trọng hơn là nó đơn giản hơn. Tôi thường gặp vấn đề khi di chuyển dữ liệu được mã hóa URL giữa cURL, trình duyệt web và các máy khách khác, thường là do dấu ngoặc kép, %
dấu hiệu nhúng , v.v. Base64 rất trung tính vì nó không sử dụng các ký tự đặc biệt.