Foros del Web » Programando para Internet » PHP »

{urlencode() + Á = %C1} {x() + Á = %C3%81} x()?

Estas en el tema de {urlencode() + Á = %C1} {x() + Á = %C3%81} x()? en el foro de PHP en Foros del Web. Hola compañeros, les escribo por que estoy trabajando con un sistema de una biblioteca. A ellos les realizaron un programa, que cuando realizan las consultas ...
  #1 (permalink)  
Antiguo 31/05/2003, 01:54
Avatar de Kaiser  
Fecha de Ingreso: febrero-2001
Ubicación: Heredia, Costa Rica
Mensajes: 239
Antigüedad: 23 años, 2 meses
Puntos: 1
{urlencode() + Á = %C1} {x() + Á = %C3%81} x()?

Hola compañeros, les escribo por que estoy trabajando con un sistema de una biblioteca.

A ellos les realizaron un programa, que cuando realizan las consultas de nombres de los libros, pues utiliza una función similar a urlencode()...

El asunto es que el código de esos scripts están encriptados y no tengo acceso a ellos en su totalidad, pues "son de extrema seguridad".

Tampoco puedo deducir en que están programados, pues los links son del tipo http://blabla.com/r?sys04.

Acá el tema es que cuando agrego el modulo que desarrolle para ellos en PHP, tengo que pasar por el tedio de entender a la otra función, misma que desconozco, por lo que tardaría demasiado reuniendo las combinaciones de todos los caracteres especiales.

Actualmente soluciono el problema de las tildes de la siguiente forma:

$textarea = ereg_replace( "%C1", "%C3%81",$textarea); //Á
$textarea = ereg_replace( "%E1", "%C3%A1",$textarea); //á
$textarea = ereg_replace( "%C9", "%C3%89",$textarea); //É
$textarea = ereg_replace( "%E9", "%C3%A9",$textarea); //é
...

Lo impresionante, seria que alguien me pueda decir si con algún algoritmo o clase en especial puedo conseguir el resultado original que requiere el sistema de la biblioteca, para "leer" los caracteres especiales.

Desde ya muchas gracias por su tiempo.
__________________
http://www.abdicar.com - Undisputed Hosting Leader!
  #2 (permalink)  
Antiguo 31/05/2003, 13:53
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Bueno, creo que me debes un par de copas.

Lo que usa tu sistema es la codificacion UTF-8. En PHP la puedes manejar con las funciones utf8_encode() y utf8_decode() (http://es2.php.net/manual/es/function.utf8-encode.php). Y mira este codigo que he probado:
Código PHP:
<?php
echo urlencode(utf8_encode("Á"));
?>
La salida que muestra es %C3%81 , justo lo que estabas haciendo con tu ereg_replace(). Es decir, primero pasa la cadena a UTF-8 y luego la urlencodeas para pasarla como paramentro.

Espero haberte sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 31/05/2003, 14:15
Avatar de Kaiser  
Fecha de Ingreso: febrero-2001
Ubicación: Heredia, Costa Rica
Mensajes: 239
Antigüedad: 23 años, 2 meses
Puntos: 1
Muchas Gracias hermano... no solo te debo una copa... sino el dinero que estaba gastando en tiamina (pastillas para no dormir).

Mil Gracias y a tus ordenes para cualquier cosa.
__________________
http://www.abdicar.com - Undisputed Hosting Leader!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:27.