• Publicidad

Convertir texto ASCII a texto normal

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Convertir texto ASCII a texto normal

Notapor Doddy » 2009-09-29 20:41 @904

Hi!

Mi gran duda es convertir texto ASCII separado por comas a texto normal, por ejemplo: 117,115,101,114,115 = users

¿Alguien podría ayudarme?
Imagen
Avatar de Usuario
Doddy
Vive para Perl en Español
Vive para Perl en Español
 
Mensajes: 839
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Convertir texto ASCII a texto normal

Notapor nemest » 2009-09-29 21:53 @953

No sé si esto te sirva.

Lo encontré ayer o antes de ayer (por aquí se dice antiayer).

http://www.perlmonks.org/?parent=557655;node_id=3333
Avatar de Usuario
nemest
Perlero Nuevo
Perlero Nuevo
 
Mensajes: 12
Registrado: 2009-09-18 21:25 @934

Re: Convertir texto ASCII a texto normal

Notapor explorer » 2009-09-30 03:10 @173

La pregunta está mal planteada...

Lo que quieres hacer es transformar una lista de números a los caracteres a los que corresponden esos números.

Es decir, si en una variable tengo

$var = 117;

lo que quiero es obtener

$var = 'u';

Curiosamente, esto es lo que ocurre de forma directa si estuviéramos en un lenguaje como el C, donde la representación de un entero puede ser usada como valores que representan los caracteres, pudiendo hacer cosas como esta:

Sintáxis: [ Descargar ] [ Ocultar ]
Using c Syntax Highlighting
var = 'A' + 15;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


que quiere decir que al valor numérico que representa al valor de 'A' le sumamos 15, con lo que en 'var' guardamos un valor entero, pero que podemos usar también para obtener el carácter que está a 15 posiciones de la letra 'A'.

El problema es que ya no se hace esto hoy en día, porque... lo que Murdoc Rush quiere indicar como "caracteres normales", es incompleto. Falta algo.

¿Qué es un carácter normal para Murdoc Rush? En otras palabras: ¿cuál es la codificación de caracteres que él considera normal?

El ASCII era el estándar de codificación hace muchos años, pero solo era uno de varios (casi cada empresa publicaba el suyo). Todo era un jaleo hasta que la ISO publicó sus estándares. En Europa, por ejemplo, se adoptó el estándar iso-8859-1 para los alfabetos centro europeos. Este alfabeto se eligió porque es el más parecido al ASCII, aparte de que contiene la mayoría de las letras acentuadas de Europa. Enseguida fue adoptado por los sistemas operativos de la época (1987), excepto Micro$oft, que se inventó su propia variación llamada Windows-1252.

Como Perl nació en aquella época, es también la codificación por defecto para trabajar con él.

Con los años, se han hecho cambios. Ahora los europeos usamos la variación iso-8859-15, donde, aparte de otros caracteres acentuados, está el símbolo del Euro.

En otros países se usan otras codificaciones, claro.

Ahora la tendencia es a usar utf-8 en todo.

Así que, antes de responder a Murdoc Rush, habría que preguntarle, qué es para él "caracteres normales". O dicho de otra manera, ¿cuál es para él una codificación normal? Pues, dependiendo de una o de otra, la solución será distinta.

La solución indicada por nemest es correcta (usar pack()), así como hacer un map() aplicando un chr() a cada valor, y otras combinaciones, pero con eso obtenemos el resultado en formato iso-8859-1. ¿Esa es la codificación "normal" para Murdoc Rush?
JF^D Perl Programming Language
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 12919
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados