Credo che ancora manchino alcuni elementi per poter rispondere.
Provo a schematizzare quello che ho capito.
Tu in una pagina Web hai una stringa, che contiene caratteri "vietati" tipo < / " & ed altri.
Questa stringa la puoi avere in una variabile JS oppure in un campo di un form.
Nel secondo caso il form lo puoi inviare in modo "put" o in modo "get"; invece da JS l'unico modo e` inviare come argomento del link, che corrisponde al "get".
Chiaramente per inviare una stringa questa deve essere in qualche modo codificata.
Il put codifica in un modo che personalmente non conosco, ma sia il browser che il server sono in grado di codificare e decodificare; il get codifica in un modo che in JS si chiama escape() / unescape(), e che il CGI riesce a codificare/decodificare in modo automatico (in realta` e` il modulo :cgi che fa queste conversioni, ma sono trasparenti al programmatore).
Se ti riconosci in questa analisi possiamo prosseguire con il ragionamento, altrimenti cerca di spiegarti meglio (e in tal caso forse io non sono la persona piu` adatta ad aiutarti).