• Publicidad

Wide character in print

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

Wide character in print

Notapor Dshellnoi_Unix » 2013-04-09 14:53 @662

¿ Alguien me podría decir por qué se da este fallo en un script ?

Wide character in print at ./test.pl line 236.

En esa línea hay un bucle for() que recupera e imprime datos de un archivo XML.

He intentado poner codificación:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. # -*- coding: utf-8 -*-
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Sintáxis: [ Descargar ] [ Ocultar ]
Using xml Syntax Highlighting
  1. <?xml version="1.0" encoding="utf-8" ?>
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Al principio del script y en el documento xml también pero me sigue saliendo el error.

Estaría agradecido si alguien me explicara ya que no tengo ni idea del porqué pasa esto :(
Avatar de Usuario
Dshellnoi_Unix
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2013-02-24 15:43 @696
Ubicación: Las Palmas de Gran Canaria

Publicidad

Re: Wide character in print

Notapor explorer » 2013-04-09 15:51 @702

Extraído de perlunifaq:

¿Qué pasa si no codifico?
La cadena de texto se enviará con los bytes del formato interno de Perl. En algunos casos Perl le mostrará un mensaje amistoso para avisarle de que está haciendo algo mal:

Wide character in print at ejemplo.pl line 2.

Como el formato interno suele ser UTF-8, es difícil detectar estos errores (puesto que normalmente la codificación deseada es UTF-8). Pero no sea perezoso; no debe basarse en el hecho de que el formato interno de Perl es UTF-8. Codifique explícitamente para evitar errores extraños y para que los programadores que van a mantener el código vean que ha pensado en todo.

Quiere decir que has leído datos que están codificados en formato UTF-8, y que, a la hora de imprimirles, Perl te avisa de que lo estás haciendo como si fuera un flujo de bytes normales, por lo que puede haber problemas con los caracteres de dos o más bytes.

El consejo que te dan es que, si vas a leer un documento codificado en UTF-8, pues que lo leas pero indicándolo expresamente, para que Perl sepa qué es lo que está leyendo, y guarde los caracteres de forma correcta. Y a la hora de imprimir, lo mismo.

En el propio perlunifaq, tienes un ejemplo de des/codificación UTF-8, en la pregunta siguiente a ésta que te he copiado.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Wide character in print

Notapor Dshellnoi_Unix » 2013-04-09 16:08 @714

Gracias, voy a leer la doc que me has dejado :)
Avatar de Usuario
Dshellnoi_Unix
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2013-02-24 15:43 @696
Ubicación: Las Palmas de Gran Canaria


Volver a Básico

¿Quién está conectado?

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

cron