Re: egrep en castellano vs egrep en inglés
El Wed, 30 Sep 2015 19:05:39 +0200, Manolo Díaz escribió:
> El miércoles, 30 sep 2015 a las 16:28 UTC Camaleón escribió:
>
>> El Wed, 30 Sep 2015 18:20:58 +0200, Manolo Díaz escribió:
>>
>> > El miércoles, 30 sep 2015 a las 15:45 UTC Camaleón escribió:
>> >
>> >> El Wed, 30 Sep 2015 17:13:13 +0200, Manolo Díaz escribió:
>> >>
>> >> > El miércoles, 30 sep 2015 a las 14:31 UTC Camaleón escribió:
>> >> >
>> >> >> Buscando en Google he visto que esta "característica" está
>> >> >> documentada en la versión de grep que tienes (2.21), vamos, que
>> >> >> ni bug ni fantasmas ni gaitas... misterio resuelto:
>> >> >>
>> >> >> http://savannah.gnu.org/forum/forum.php?forum_id=8152
>> >> >>
>> >> >> If a file contains data improperly encoded for the current
>> >> >> locale, and this is discovered before any of the file's contents
>> >> >> are output,
>> >> >> grep now treats the file as binary.
>> >> >>
>> >> >>
>> >> > Extraño. Así que caracteres que son inválidos en utf8 pueden no
>> >> > serlo en C. Creía que el último era un subconjunto de cualquier
>> >> > otro.
>> >>
>> >> Lo que sucede es que el archivo "passwd" está codificado en
>> >> "iso-8859"
>> >> y grep está usando utf-8 de ahí que lo interprete mal y en la nueva
>> >> versión te lo detecta como binario.
>> >
>> > Por lo que sé está codificado en ascii.
>>
>> (...)
>>
>> No, la tabla de caracteres iso-8859 no es la misma que la tabla de
>> caracteres ascii, obviamente.
>
> ¿Y? Esas tablas son superconjuntos o ampliaciones de ascii
> (compatibilidad hacia atrás). Si un fichero, p.ej. /etc/passwd, pasa el
> test ascii, si solo contienen esos caracteres, por fuerza ha de pasar
> *cualquiera* de los test iso-8859-* y utf8.
Si quieres trabajar con archivos codificados y después interpretarlos
(leerlos) con distintos sistemas de codificación tienes que convertirlos
antes o te arriesgas a que presenten errores en la visualización.
Y ya he dicho que igual le podía haber fallado con LANG=C, que le haya
funcionado ha sido casualidad.
>> Si un documento codificado en iso-8859-1 incluye un carácter que no
>> está en ascii N o lo conviertes a ascii o al leerlo te aparecen
>> caracteres extraños. Lo mismo pasa con utf-8 (quienes trabajan con
>> archivos de texto habitualmente sufren estos problemas en sus propias
>> carnes).
>
> Ese es un caso distinto al que estamos tratando. De hecho es el caso
> inverso.
No lo creo. El archivo origen es iso-8859, no ascii.
Saludos,
--
Camaleón
Reply to: