shell-script-pt
[Top][All Lists]
Advanced

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

Re: [shell-script] Detectar codificação de texto


From: Rodrigo Tenorio
Subject: Re: [shell-script] Detectar codificação de texto
Date: Fri, 6 Feb 2015 14:52:19 -0200

Pode ser que o arquivo.txt seja o problema. Uma vez tive uma luta parecida até me dar conta que era o arquivo que tinha codificação diferente de UTF e ISO.
E se o arquivo realmente estar em UTF ou ISO, tente reconvertê-lo da fonte original, pois pode ter havido erro na conversão... E se ele for composto de vários, converta-os, para a UTF por exemplo, antes de processá-los para criar o seu.
Até onde eu sei e entendo todas as strings apresentadas no seu terminal obrigatoriamente terá a codificação que foi configurada em teu sistema. Nunca vi um mesmo arquivo possuidor de múltiplas codificações...

Em 06/02/2015 12:33, "Fernando Mercês address@hidden [shell-script]" <address@hidden> escreveu:
 

Se tiver acentuação será que daria pra afirmar que pelo menos não é ascii? Tipo:

$ grep -q '[ãõâáêéíúüç]' <(echo 'algo legalzão') && echo utf || echo ascii

Mas não resolve os caracteres estranhos, creio.

Abs


Att,

Fernando Mercês
Linux Registered User #432779
www.mentebinaria.com.br
------------------------------------
"Ninguém pode ser escravo de sua identidade; quando surge uma possibilidade de mudança é preciso mudar". (Elliot Gould)

2015-02-06 22:29 GMT+08:00 Marcelo F Andrade address@hidden [shell-script] <address@hidden>:
 

015-02-06 9:07 GMT-03:00 Robson Alexandre address@hidden
[shell-script] <address@hidden>:
> talvez eu não tenha me expressado direito, mas o que estou tentando buscar é alguma maneira de detectar a codificação de uma string, e não do conteúdo do arquivo como um todo [corta/]

Então, a princípio, não tem como. De fato os "caracteres estranhos"
numa codificação ainda assim são caracteres válidos numa outra
codificação. Mas se você tiver uma base de caracteres "válidos" no
mesmo arquivo e um conjunto limitado de charsets (iso-8859-1 e utf-8,
por exemplo), pode inferir qual seja a codificação correta. Veja se
consigo ajudar:

$ wget -O arquivo http://termbin.com/cq15
$ nl arquivo | tail -2
24 Documentos/ebooks/xadrez/Introdução ao Xadrez.pdf
25 Documentos/ebooks/xadrez/Introdu��o ao Xadrez.pdf

$ nl arquivo | aspell conv iso-8859-1 utf-8 | tail -2
24 Documentos/ebooks/xadrez/Introdução ao Xadrez.pdf
25 Documentos/ebooks/xadrez/Introdução ao Xadrez.pdf

A linha 24 está em utf-8 e a linha 25 eu tenho certeza que foi escrita
originalmente em iso-8859-1 (De novo, na verdade tudo está em utf-8,
os caracteres "?" malucos a pessoa digitou pensando estar noutra
codificação. Como não se atentou aos charsets, digitou "Introdu��o"
pensando estar digitando "Introdução"). Na verdade, é mais ou menos a
mesma ideia do Tiago de outra forma.

Se só tiver texto, uma abordagem alternativa seria tentar passar um
corretor para tentar "consertar" as palavras. Talvez um `aspell -l
pt_BR -c arquivo` poderia ajudar, mas a questão fica em como lidar com
palavras contendo simbolos.

Boa sorte.

--
MARCELO F ANDRADE | Belem, Amazonia, Brazil | http://about.me/mfandrade



reply via email to

[Prev in Thread] Current Thread [Next in Thread]