• Publicidad

Problemas con setlocale()

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

Problemas con setlocale()

Notapor aarom » 2006-06-12 16:36 @733

Hola amigos,

Estoy comenzando en esto de PERL y el primer problema al que me enfrento es que no hay manera de hacer aparecer bien los textos con eñes y acentos.

Por lo que he podido averiguar debe ser un problema de localización, y por tanto he tratado de solucionarlo poniendo esto:

use POSIX qw(locale_h);
setlocale(LC_ALL, "es_ES.ISO8859-15");

Pero nada, no hay manera. siguen saliendo los simbolitos raros...

Mi máquina es: Windows XP profesional
PERL: 5.6.1
Lo ejecuto desde el terminal de MS-DOS
EDITOR: Ultraedit Studio
Formato de codificación de archivos:
He probado tanto con ANSI cómo con UTF-8.

¿Alguien me puede ayudar?

Muchas gracias de antemano.
aarom
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2006-06-12 16:17 @720
Ubicación: Madrid

Publicidad

Notapor explorer » 2006-06-12 16:44 @739

Ese Perl es antiquísimo. Instala uno más moderno, como el 5.8.8, que ya trae todo el soporte para utf8.

Es lo primero que haría, claro... luego probaría otras opciones...

Yo sólo uso Linux, así que del tema de Windows no puedo ayudarte.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor aarom » 2006-06-12 16:53 @745

Pues nada ya me esoy bajando la versión ActivePerl 5.8.8.817...

Luego te cuento... gracias
aarom
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2006-06-12 16:17 @720
Ubicación: Madrid

Notapor aarom » 2006-06-12 16:54 @746

¿Por cierto. es correcto el código que he puesto arriba para que "localice" al español? ¿O tu cambiarías algo?
aarom
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2006-06-12 16:17 @720
Ubicación: Madrid

Notapor explorer » 2006-06-12 16:58 @749

Para mí es correcto... pero sería más correcto decir: necesito activar el locale porque el programa que estoy ejecutando lo hace en un ordenador equipado con un idioma distinto al que va a manejar.

Si tu Windows XP está en español, tu programa debería funcionar sin necesidad de ningún locale.

Un ejemplo. Yo tengo un programa que saca los nombres de los días de la semana y de los meses en castellano, en una tabla:
http://www2.fa1.cie.uva.es/incendios/frames

Bueno, si esa información la tengo que sacar en francés para los marroquíes, puedo usar el mismo programa, cambiando el locale() al principio, y el resto dejarlo tal cual está:
http://maroc.latuv.uva.es/hotspots/index.html

Podría haber hecho dos programas con los nombres en español y en francés, pero... con un locale(), sirvió.

perllocale
perlunicode
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2006-06-12 17:08 @755

Vete a tu línea de comandos y ejecuta
Código: Seleccionar todo
perl -le "print 'Cañón'"
para ver si te sale bien los acentos y la 'ñ'.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor aarom » 2006-06-12 17:17 @762

Me sigue saliendo mal... :cry:

Probare "localizando"
aarom
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2006-06-12 16:17 @720
Ubicación: Madrid

Notapor aarom » 2006-06-12 17:24 @766

Nada, no hay manera.

Ni desde consola...

Ni desde script...

Ni con UTF-8, ni con ASCI...


Va a ser la mierda del microchof...

Muchas gracias de todos modos.
aarom
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2006-06-12 16:17 @720
Ubicación: Madrid

Notapor explorer » 2006-06-12 17:25 @767

Me parece sospechar dónde puede estar el fallo...

Utilizas UltraEdit para hacer los scripts. Si resulta que ese programa te está grabando los scripts en formato utf8, al ejecutarlos desde la línea de comandos, ésta no sabe nada de los códigos unicode...

Bueno... estoy suponiendo... :)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2006-06-12 17:31 @771

Pon al principio del script:
Código: Seleccionar todo
use encoding "iso 8859-15";
y prueba...
(Esto se resolvería mejor en el chat, claro :) )
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Básico

¿Quién está conectado?

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

cron