Può capitare di essere connessi ad internet tramite un server proxy e la password del prioprio account contenga, per ragioni di sicurezza, dei caratteri speciali, come ad esempio !
, @
ecc.
Se il proprio sistema operativo è una distribuzione Linux, come Ubuntu, per connettersi tramite il proxy può essere necessario impostare le variabili http_proxy
e https_proxy
, ma il comando per farlo non funziona nel caso di password contenente caratteri riservati, come ad esempio F@oo!B#ar$:
export http_proxy = "http://utente:F@oo!B#ar$@myProxy.myServer.com:3128"
È possibile che venga visualizzato un errore o che il comando non abbia alcun effetto proprio a causa dei caratteri speciali contenuti nella password.
La soluzione è utilizzare l’encoding URL, previsto per i caratteri riservati. Utilizzando strumenti da riga di comando, come unum o gnome-character-map
, si può ricavare il codice esadecimale di un carettare speciale:
Partendo dall’hex di un carattere è possibile quindi determinare l’encoding URL corrispondente. Quindi @
diventa %40
, :
diventa %3A
, !
diventa %21
, ecc., cosicché la password presa come esempio diventa F%40o%3Ao%21B%23ar%24
.
Ora è possibile utilizzare questi codici al posto dei caratteri speciali e settare il proxy senza problemi:
export http_proxy="http://user:F%40o%3Ao%21B%23ar%24@myProxy.myServer.com:3128"
Se PHP è installato sul proprio sistema operativo, per convertire rapidamente caratteri speciali o intere password si può usare il seguente comando:
echo 'F@oo!B#ar$' | php -R 'echo urlencode($argn)."\n";'
Oppure installando gridsite-clients
si può scrivere semplicemente urlencode 'F@oo!B#ar$'
ed ottenere la password convertita.
Articolo originale: link.