[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ¿Codificacion con archivo de texto en binary mediante un script?



El Thu, 08 Oct 2015 17:10:28 -0500, Debia Linux escribió:

> Quiero comentarles que tengo un formulacio sencillo en un script que a
> su vez genera un archivo de texto.
> 
> Algo asi como
> 
>     echo "Escribe una frase"
>     read frase
> 
>     echo "$frase" > texto.txt
> 
> Pero cuando quiero ver la codificacion del texto (que deberia ser utf-8
> me arroja el siguiente mensaje
> 
>     file --mime-encoding texto.txt texto.txt: binary

(...)

Puedes intentar con "file -d" por si vieras algún carácter o terminación 
de línea extraña pero algo relacionado con esto hablamos en la lista no 
hace mucho. Parece que las utilidades base (file, grep...) están 
poniéndose pejigueras con la codificación de los archivos y las 
detecciones que hacen no siempre andan finas.

En primer lugar, habría que analizar cómo se genera ese archivo de texto 
ya que, p. ej., si se ejecuta desde una consola la codificación debe ser 
la que tengas definida como variable de entorno y la que tengas en la 
consola desde donde ejecutas el script. 

Si el usuario puede copiar/pegar texto en la terminal, ese texto puede 
venir de distintas fuentes (página web, e-mail...) que también puede 
contener una codificación determinada y entrar en conflicto con la de la 
consola por lo que lo ideal sería que sanearas la entrada de datos antes 
de almacenar la variable, es decir, forzar el uso de un tipo de 
codificación como UTF-8 o impedir el uso de ciertos caracteres (sólo A-Z 
y números).

> ¿Alguna idea de lo que puede estar pasando o como puedo corregir este
> archivo que es de texto y que el comando file me dice que es binario?.

No hagas caso de lo que diga "file", no siempre acierta. Si te muestra 
caracteres raros tendrás que convertir el archivo con iconv (de iso-8859/
ascii a utf-8 o viceversa).

Saludos,

-- 
Camaleón


Reply to: