Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Básico » Problema con la llegada de lista de caracteres Responder al tema
Nuevo tema


Página 1 de 1  [ 8 mensajes ] 
 
Nota 2009-12-07 15:16 @678

Perlero Nuevo
Registrado: 2009-11-27 08:39 @402
Mensajes: 4
Problema con la llegada de lista de caracteres
Buenas tardes:

Lo que sucede es que estoy ingresando dentro de una variable esta lista de caracteres:

Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48U29saWNpdHVkX1JlZ2lzdHJvPjxWZXJzaW9uPj
EuMTwvVmVyc2lvbj48RGF0b3NfUmVnaXN0cm8+PE51bWVyb19SZWdpc3RybyAvPjxGZWNoYV9QcmVzZW50YWNpb24g
Lz48SG9yYV9QcmVzZW50YWNpb24gLz48RmVjaGFfRWZlY3RpdmEgLz48SG9yYV9FZmVjdGl2YSAvPjwvRGF0b3NfUm
VnaXN0cm8+PERhdG9zX0Zpcm1hZG9zPjxEYXRvc19HZW5lcmljb3M+PE9yZ2FuaXNtbz4wMDI8L09yZ2FuaXNtbz48
SWRpb21hPmVzX0VTPC9JZGlvbWE+PFJlbWl0ZW50ZT48Tm9tYnJlPkpVQU4gR09NRVogTE9QRVo8L05vbWJyZT48RG
9jdW1lbnRvX0lkZW50aWZpY2FjaW9uPjxUaXBvPjE8L1RpcG8+PE51bWVybz4wNTI2MTA0MkU8L051bWVybz48L0Rv
Y3VtZW50b19JZGVudGlmaWNhY2lvbj48Q29ycmVvX0VsZWN0cm9uaWNvPmNoZXBhX3NlcnJhbm8uZXM8L0NvcnJlb1
9FbGVjdHJvbmljbz48L1JlbWl0ZW50ZT48QXN1bnRvPjxDb2RpZ28+VFJRUzwvQ29kaWdvPjxEZXNjcmlwY2lvbj5T
b2xpY2l0dWQgZGUgUmVjbGFtYWNp824sIHF1ZWphIHkgc3VnZXJlbmNpYXM8L0Rlc2NyaXBjaW9uPjwvQXN1bnRvPj
xEZXN0aW5vPjxDb2RpZ28gLz48L0Rlc3Rpbm8+PE51bWVyb19FeHBlZGllbnRlIC8+PC9EYXRvc19HZW5lcmljb3M+
PERhdG9zX0VzcGVjaWZpY29zPjxkb2N1bWVudG9JZGVudGlkYWQ+MDUyNjEwNDJFPC9kb2N1bWVudG9JZGVudGlkYW
Q+PG5vbWJyZVNvbGljaXRhbnRlPkpVQU4gR09NRVogTE9QRVo8L25vbWJyZVNvbGljaXRhbnRlPjxkb21pY2lsaW9O
b3RpZmljYWNpb24+TXogRiBDODwvZG9taWNpbGlvTm90aWZpY2FjaW9uPjxsb2NhbGlkYWQ+UGFycmFsZXM8L2xvY2
FsaWRhZD48cHJvdmluY2lhPkliYWd1ZTwvcHJvdmluY2lhPjxjb2RpZ29Qb3N0YWw+MDAwMDA8L2NvZGlnb1Bvc3Rh
bD48c29saWNpdGE+bGpoZGJmIGdsZG5iZiBqa2cgbGZkZ2JsZmRoYmdsaGJmZGdsaGJmZGhnamJkc2xqaGdiZHNqbG
hiIGc8L3NvbGljaXRhPjxleHBvbmU+a2ogZ2Zqa2RzaCBnamJmZGdqaGZkbmJqa2xnbmZkamtnbmprbGZkbmdramZk
c25nbGtqbmZkamtsZ25sZmRqa2c8L2V4cG9uZT48dGVsZWZvbm8+MjY0MDAwMDwvdGVsZWZvbm8+PC9EYXRvc19Fc3
BlY2lmaWNvcz48RG9jdW1lbnRvcz48RG9jdW1lbnRvPjxOb21icmU+aW50ZXJmYWNlLnBkZjwvTm9tYnJlPjxDb2Rp
Z28+VFJBTTFEMTwvQ29kaWdvPjxFeHRlbnNpb24+cGRmPC9FeHRlbnNpb24+PERlc2NyaXBjaW9uPkRvY3VtZW50by
BQREY8L0Rlc2NyaXBjaW9uPjxIYXNoPjJjZDZjNDg0YzAzYTNiYTBmNTBhOGY0MTc1YWE4ZWNhPC9IYXNoPjxGaXJt
YSAvPjxDb250ZW5pZG8gLz48L0RvY3VtZW50bz48L0RvY3VtZW50b3M+PC9EYXRvc19GaXJtYWRvcz48RmlybWEgLz
48L1NvbGljaXR1ZF9SZWdpc3Rybz4


la cual contiene caracteres especiales (+). Cuando quiero imprimirla, me está quitando los '+', ¿qué puedo hacer para solucionar el problema?


Nota 2009-12-07 15:20 @680
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10270
Re: Problema con la llegada de lista de caracteres
Pues a mí sí que me salen los '+'...

¿Qué código estás usando?

_________________
JF^D Perl programming


Nota 2009-12-07 15:24 @683

Perlero Nuevo
Registrado: 2009-11-27 08:39 @402
Mensajes: 4
Re: Problema con la llegada de lista de caracteres
Llega de un proceso en Javascript, a Perl.


Nota 2009-12-07 15:40 @694
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10270
Re: Problema con la llegada de lista de caracteres
Mira, mira...

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5.  
  6. my $recibido = 'PD94bWwgdmVyc2lv+j0iMS4wIiBlbmN+ZGluZz0i+VRGLTgiPz4+U29saWNp+HVkX1JlZ2+zdHJvPj+WZXJza+9uPj';
  7.  
  8. print "[$recibido]\n";

Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
explorer@casa:~/Documents/Desarrollo> ./kk.pl
[PD94bWwgdmVyc2lv+j0iMS4wIiBlbmN+ZGluZz0i+VRGLTgiPz4+U29saWNp+HVkX1JlZ2+zdHJvPj+WZXJza+9uPj]

_________________
JF^D Perl programming


Nota 2010-01-09 11:10 @507
Avatar de Usuario
Creador de Perl en Español
Registrado: 2003-10-15 16:52 @744
Ubicación: México
Mensajes: 1163
Re: Problema con la llegada de lista de caracteres
jserrano escribió:
Llega de un proceso en Javascript, a Perl.


Realmente lo que deberías de hacer es escapar los '+' en tu función de JavaScript. Sin ver el código lo que se me ocurre es que tu script de JavaScript está enviando los datos a Perl, pero al hacerlo lo envía como un query string, en donde los '+' significan espacios.

En tu JavaScript debes de sustituir los '+' por '%2B'.

Saludos

_________________
Uriel Lizama Perl programmer fundador de Perl en Español


Nota 2010-01-09 11:11 @508
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10270
Re: Problema con la llegada de lista de caracteres
Eso no es lo que preguntaba jserrano. Él comentaba que a la hora de imprimir la cadena, desaparecían los caracteres '+'. Seguramente la ristra de caracteres forme parte de una codificación base64, y claro, no es bueno que se pierdan caracteres por el camino.

En HTML, un signo '+' es un signo '+'. No estamos hablando de codificación en HTML, sino de codificación en los URI, en que un '+' sirve para separar los argumentos.

Sacado del RFC 1630, línea 363:
Citar:
Within the query string, the plus sign is reserved as shorthand
notation for a space. Therefore, real plus signs must be encoded.
This method was used to make query URIs easier to pass in systems
which did not allow spaces.
que quiere decir
Citar:
Dentro de la cadena de petición, el signo más está reservado como una
abreviatura de notación de un espacio. Los otros signos más deben ser codificados siempre.
Este método es usado para hacer peticiones URI más fáciles de pasar en sistemas
que no permitían espacios.


En cuanto a las funciones de codificación/descodificación, hace años que ya no se usan. Ahora, para esos menesteres, existen módulos que esconden esa complejidad, como URI::Escape, por ejemplo, que si miras su código, verás que tiene en cuenta algunos casos más que el simplemente traducir codificaciones.

_________________
JF^D Perl programming


Nota 2010-01-09 11:46 @532
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10270
Re: Problema con la llegada de lista de caracteres
No se trata de ninguna competición, solo se trata de poner puntos sobre las is. Si vemos que algo no se ajusta o que está mal, pues se comenta. Si al autor del hilo no le vale con la respuesta dada, lo normal es que insista.

En cuanto a la pregunta de jserrano, es: Cuando quiero imprimirla, me está quitando los '+', ¿qué puedo hacer para solucionar el problema?. O dicho de otra manera: él tiene esa secuencia (de no sabemos qué codificación) y la quiere sacar tal cual por la salida estándar (o un fichero), y al hacerlo, desaparecen los caracteres '+'.

Como no nos pone su código, no vemos dónde está el fallo, por lo que tenemos que elucubrar, intentando acertar.

_________________
JF^D Perl programming


Nota 2010-01-09 12:00 @542
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10270
Re: Problema con la llegada de lista de caracteres
No he llegado a ninguna conclusión.

Le pedí ver su código y no lo publicó, así que tuve que poner un código para demostrarle que a mí sí me funcionaba al hacer un simple print().

Supuse que la situación sería más complicada, pero jserrano no ha dado más pistas ni señales de vida.

Por eso el hilo no está (no estaba) completo.

_________________
JF^D Perl programming


Responder al tema  [ 8 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO