Sono curioso di sapere da voi, da chi vorrà rispondere, come avete risolto voi il seguente problema:
1) array javascript, array di stringhe, da inviare al server, via ajax.
La array si deve necessariamente trasformare in stringa unica, per cui si usa join.
A questo punto sorgono due problemi, che sono quelli riguardo ai quali vorrei conoscere le vostre soluzioni:
2) Il joiner usato in join ovviamente non deve essere presente nelle stringhe concatenate.
Una prima soluzione è quella di impedire che l'utente utilizzi il joiner prescelto. Ma a parte che, per quanto lo si scelga bizzarro e inconsueto, è comunque concettualmente poco elegante eliminare una opzione di testo all' utente (qualsiasi essa sia), ma poi vi è sempre il rischio di una qualche injection.
3) Prima di effettuare il join si effettua anche una misura della length delle stringhe da concatenare, e si invia al server sia il join delle stringhe concatenate sia una mappa numerica di dove stanno gli indici dei vari joiner.
Si potrebbe pensare che questo risolve il problema, invece no: se l'utente immette caratteri insoliti (potrebbero essere alfabeti asiatici, che sono insoliti per noi ma non per un network multimediale e internazionale ad esempio), è al momento della rielaborazione sul server che (encodeURIcomponent a parte, che non risolve il problema) ci si accorge che quel che appariva come un singolo carattere, è in realtà letto come una seuqenza di più caratteri - il che manda a zampette all' aria tutta la mappatura.
Voi come avete risolto?