Offrirò un'alternativa strana. A volte è più facile usare codifiche diverse, specialmente se hai a che fare con una varietà di sistemi che non gestiscono tutti i dettagli della codifica URL allo stesso modo. Questo non è l'approccio più mainstream ma può tornare utile in determinate situazioni.
Invece di codificare i dati tramite URL, è possibile codificarli in base64. Il vantaggio di ciò è che i dati codificati sono molto generici, costituiti solo da caratteri alfa e talvolta da quelli finali =
. Esempio:
Matrice di stringhe JSON:
["option", "Fred's dog", "Bill & Trudy", "param=3"]
Tali dati, codificati nell'URL come data
parametro:
"data=%5B%27option%27%2C+%22Fred%27s+dog%22%2C+%27Bill+%26+Trudy%27%2C+%27param%3D3%27%5D"
Stesso, codificato base64:
"data=WyJvcHRpb24iLCAiRnJlZCdzIGRvZyIsICJCaWxsICYgVHJ1ZHkiLCAicGFyYW09MyJd"
L'approccio base64 può essere un po 'più breve, ma soprattutto è più semplice. Ho spesso problemi a spostare i dati con codifica URL tra cURL, browser Web e altri client, di solito a causa di virgolette, %
segni incorporati e così via. Base64 è molto neutro perché non usa caratteri speciali.