Lun Jun 12, 2006 3:36 pm
|
 |
aarom
Perlero Nuevo

|
Registrado: 12 Jun 2006
Mensajes: 7
Ubicación: Madrid
|
|
| Problemas con setlocale() |
|
|
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. |
|
|
|

Lun Jun 12, 2006 3:44 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
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. |
|
Lun Jun 12, 2006 3:53 pm
|
 |
aarom
Perlero Nuevo

|
Registrado: 12 Jun 2006
Mensajes: 7
Ubicación: Madrid
|
|
|
|
|
Pues nada ya me esoy bajando la versión ActivePerl 5.8.8.817...
Luego te cuento... gracias |
|
Lun Jun 12, 2006 3:54 pm
|
 |
aarom
Perlero Nuevo

|
Registrado: 12 Jun 2006
Mensajes: 7
Ubicación: Madrid
|
|
|
|
|
| ¿Por cierto. es correcto el código que he puesto arriba para que "localice" al español? ¿O tu cambiarías algo? |
|

Lun Jun 12, 2006 3:58 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
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 |
|

Lun Jun 12, 2006 4:08 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
Vete a tu línea de comandos y ejecuta
| Código: |
| perl -le "print 'Cañón'" |
para ver si te sale bien los acentos y la 'ñ'. |
|
Lun Jun 12, 2006 4:17 pm
|
 |
aarom
Perlero Nuevo

|
Registrado: 12 Jun 2006
Mensajes: 7
Ubicación: Madrid
|
|
|
|
|
Me sigue saliendo mal...
Probare "localizando" |
|
Lun Jun 12, 2006 4:24 pm
|
 |
aarom
Perlero Nuevo

|
Registrado: 12 Jun 2006
Mensajes: 7
Ubicación: Madrid
|
|
|
|
|
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. |
|
Lun Jun 12, 2006 4:25 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
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...  |
|
Lun Jun 12, 2006 4:31 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
Pon al principio del script:
| Código: |
| use encoding "iso 8859-15"; |
y prueba...
(Esto se resolvería mejor en el chat, claro ) |
|
Lun Jun 12, 2006 4:33 pm
|
 |
aarom
Perlero Nuevo

|
Registrado: 12 Jun 2006
Mensajes: 7
Ubicación: Madrid
|
|
|
|
|
| ¿Donde está el chat? |
|
Lun Jun 12, 2006 4:35 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
Vete a tu Windows XP, Panel de Control, Configuración regional y de idioma, pestaña Opciones Avanzadas.
En la lista de Tabla de conversión de páginas de código, comprueba que esté marcada la tabla 28605 (ISO 8859-15 Latín 9).
ISO 8859-15 es la que utilizo yo en España (por tener el euro -€-) pero si estás en otro país, quizás con el ISO 8859-1 te valdría... mejor comprueba antes que tu idioma es el seleccionado en la lista desplegable que está un poquito más arriba de esa tabla. |
|
Lun Jun 12, 2006 4:36 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
| aarom escribió: | | ¿Donde está el chat? | irc://irc.freenode.net/perlenespanol
Ultima edición por explorer el Lun Jun 12, 2006 4:39 pm, editado 1 vez |
|
Lun Jun 12, 2006 4:39 pm
|
 |
aarom
Perlero Nuevo

|
Registrado: 12 Jun 2006
Mensajes: 7
Ubicación: Madrid
|
|
|
|
|
Pues he repasado todo y está ok.
he probado a crear el script desde el Notepad y desde Dreamweaver, y nada.. pero esque desde consola a pelo, tampoco.
Dejalo, que te estoy entreteniendo demasiado...
Muchisimas gracias. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|