Se state scrivendo uno script CGI, dovreste usare il modulo CGI.pm che
viene distribuito con il perl, oppure qualche modulo equivalente. Il modulo
CGI decodifica automaticamente le interrogazioni per voi e fornisce una
funzione escape() che si occupa delle codifiche.
La migliore fonte di informazioni dettagliate sulla codifica delle URI
è l'RFC 2396. Fondamentalmente, questa viene svolta dalla seguente
sostituzione:
s/([^\w()'*~!.-])/sprintf '%%%02x', ord $1/eg; # codifica
s/%([A-Fa-f\d]{2})/chr hex $1/eg; # decodifica
s/%([[:xdigit:]]{2})/chr hex $1/eg; # stessa cosa
Comunque sia, la dovreste applicare solo su singoli componenti di URI,
altrimenti perderete informazione e in generale si ingarbuglieranno
le cose. Se questo non ha chiarito i fatti, non preoccupatevi. Semplicemente,
andate a leggere la sezione 2 dell'RFC, è probabilmente la
migliore spiegazione che ci sia.
L'RFC 2396 contiene anche molte altre utili informazioni, inclusa una
espressione regolare per suddividere una URI arbitraria in componenti
(Appendice B).
|