Saya akan menawarkan alternatif yang aneh. Terkadang lebih mudah untuk menggunakan pengkodean yang berbeda, terutama jika Anda berurusan dengan berbagai sistem yang tidak semuanya menangani detail pengkodean URL dengan cara yang sama. Ini bukan pendekatan yang paling umum, tetapi dapat berguna dalam situasi tertentu.
Daripada menyandikan data dengan URL, Anda dapat menyandikannya dengan base64. Manfaat dari ini adalah data yang dikodekan sangat umum, hanya terdiri dari karakter alfa dan terkadang jejak =
. Contoh:
Larik string JSON:
["option", "Fred's dog", "Bill & Trudy", "param=3"]
Data itu, dienkode URL sebagai data
param:
"data=%5B%27option%27%2C+%22Fred%27s+dog%22%2C+%27Bill+%26+Trudy%27%2C+%27param%3D3%27%5D"
Sama, berenkode base64:
"data=WyJvcHRpb24iLCAiRnJlZCdzIGRvZyIsICJCaWxsICYgVHJ1ZHkiLCAicGFyYW09MyJd"
Pendekatan base64 bisa sedikit lebih pendek, tetapi yang lebih penting, ini lebih sederhana. Saya sering mengalami masalah saat memindahkan data yang dikodekan URL antara cURL, browser web, dan klien lain, biasanya karena tanda kutip, %
tanda yang disematkan, dan sebagainya. Base64 sangat netral karena tidak menggunakan karakter khusus.