[Madrid-pm] [Fwd: Re: Problema con el encoding y mkdir]

DervishD bugs en dervishd.net
Vie Nov 2 12:07:16 PDT 2007


    Hola Joaquín :)

 * Joaquin Ferrero <explorer en joaquinferrero.com> dixit:
> El vie, 02-11-2007 a las 12:54 +0100, DervishD escribió:
> > El problema lo tengo con los nombres de fichero. En un sistema utf8 como
> > diox manda, al crear los directórios no hay problema, ya que las
> > variables en las que están almacenados los nombres de fichero están
> > codificadas con la codificación interna de Perl, que resulta ser UTF8.
> > Ahora bien, si el locale en el que se ejecuta el script es "latin1", por
> > ejemplo, los directórios no se crean correctamente, porque sus nombres
> > contienen caractéres multibyte, y no monobyte.
> > 
> 
> Hummm... claro... utf8 es multibyte...

Pero igual que "print" traduce del encoding interno de Perl al encoding
del sistema al imprimir, esperaba que también tradujese al interactuar
con el sistema de ficheros.

Ahora que lo pienso, es estúpida semejante asunción, pero en fin, es lo
que yo creía en ese momento.

La solución es la misma que en C: detectar el encoding usando langinfo y
después actuar en consecuencia.

> > Creo que la solución pasa por usar "use Encode" y la función "encode"
> > o similar, pero tengo un problema: no sé el encoding del sistema. Quiero
> > decir que no sé qué "encoding" pasarle a "encode". En C lo haría usando
> > "langinfo", así que supongo que en Perl lo suyo es usar
> > "I18N::Langinfo". ¿Es esto correcto o hay una forma mucho más fácil?
> 
> En principio, debería valer con usar 'use locale;', pero ahora no
> recuerdo si afecta a los 'open'.

Eso no me sirve, el open lo hago bien precisamente porque sé que el
fichero que leo para obtener la información está codificado en utf8. Eso
funciona de putifa, y si imprimo lo que leo del fichero, se imprime
correctamente se use el locale que se use (Perl traduce adecuadamente en
STDOUT).

Como le he dicho a Salva, el lunes os cuento con más detalle. Leyendo mi
mensaje original, no queda claro qué pasaba. Lo escribí deprisa y
corriendo porque me tenía que ir y así quedó :(( Encima que pido ayuda
me explico con el culo...

Lo dicho, el lunes os cuento en detalle.

Muchísimas gracias :))

    Raúl Núñez de Arenas Coronado

-- 
Linux Registered User 88736 | http://www.dervishd.net
It's my PC and I'll cry if I want to... RAmen!
We are waiting for 13 Feb 2009 23:31:30 +0000 ...


Más información sobre la lista de distribución Madrid-pm