Espero alguien pueda aclararme este inconveniente.
Tengo una llave encriptada por RSA para autentificación telefónica. El problema es que al enviar la llave pública por URL, la codifico con urlencode($key), y al recibirla hago urldecode($key). Pero no funciona. Al parecer hay un problema con los signos "+" en la decodificación. Tengo php5 en ambos servidores (el que envia y el que recibe). Hice la siguiente prueba:
Código PHP:
$key = '+';
echo 'Original Plus Sign:'.$key;
echo '<br />UrlEncoded Plus Sign:'.urlencode($key);
echo '<br />UrlDecoded Plus Sign:'.urldecode($key);
echo '<br /><br /><br />';
$key = '+';
echo 'Original Plus Sign:'.$key;
echo '<br />rawUrlEncoded Plus Sign:'.rawurlencode($key);
echo '<br />rawUrlDecoded Plus Sign:'.rawurldecode($key);
Código:
como ven, cuandos e utiliza urlencode sobre el signo, al decodificarlo no me devuelve el signo, sino un espacio, no vacio, sino un caracter espacio. Original Plus Sign:+ UrlEncoded Plus Sign:%2B UrlDecoded Plus Sign: Original Plus Sign:+ rawUrlEncoded Plus Sign:%2B rawUrlDecoded Plus Sign:+
Naturalmente el problema lo tengo resuelto usando rawurldecode y rawurlencode, sin embargo no encuentro la razón por la que urlencode y urldecode no coinciden.
Ideas?