Descoberta de Encoding de aruivo (DBF)

323 views
Skip to first unread message

Kyle Felipe Vieira Roberto

unread,
Oct 20, 2017, 12:07:44 PM10/20/17
to Python Brasil
Boa tarde pessoal!
Estou começando a organizar uns dados aqui no trabalho e me deparei com o seguinte problema:
Encoding de arquivos DBF, diferente de UTF-8

Na época que os dados foram gerados, não havia a pratica de se salvar algum metadado junto ao arquivo informando o encoding do dado, e na hora de abrir e lançar no banco de dados, os caracteres especiais aparecem descofigurados, é possivel de descobrir o encoding desses arquivos?
preciso automatizar isso pois são muitos dados que temos aqui...

Bleno Nascimento

unread,
Oct 20, 2017, 12:24:01 PM10/20/17
to python...@googlegroups.com
Olá, existe a Biblioteca Chardet[1] que é utilizada para detectar tipo de caracteres e existe também o utilitário file[2] no linux que detalha as informações de um determinado arquivo.

File pode ser usado da seguinte forma

file --mime-encoding --mime-type README.md 

Saida:
   README.md: text/plain; charset=us-ascii

Mais informações sobre file pode se encontradas com o comando

  man file no caso do Debian



--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasil+unsubscribe@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Atenciosamente,

Bleno N. Silva -- 
LightBase - Consultoria em Software Público Ltda.
Desenvolvedor Web
Tel: +55(61) 99235-4482

Tel: +55(61) 3347-1949

Kyle Felipe Vieira Roberto

unread,
Oct 20, 2017, 1:32:46 PM10/20/17
to Python Brasil
@Bleno eu usei o file.. mas ele retorna que o arquivo é binario... vou dar uma lida nesse chardet ai...



Em sexta-feira, 20 de outubro de 2017 14:24:01 UTC-2, Bleno escreveu:
Olá, existe a Biblioteca Chardet[1] que é utilizada para detectar tipo de caracteres e existe também o utilitário file[2] no linux que detalha as informações de um determinado arquivo.

File pode ser usado da seguinte forma

file --mime-encoding --mime-type README.md 

Saida:
   README.md: text/plain; charset=us-ascii

Mais informações sobre file pode se encontradas com o comando

  man file no caso do Debian


Em 20 de outubro de 2017 14:07, Kyle Felipe Vieira Roberto <kylef...@gmail.com> escreveu:
Boa tarde pessoal!
Estou começando a organizar uns dados aqui no trabalho e me deparei com o seguinte problema:
Encoding de arquivos DBF, diferente de UTF-8

Na época que os dados foram gerados, não havia a pratica de se salvar algum metadado junto ao arquivo informando o encoding do dado, e na hora de abrir e lançar no banco de dados, os caracteres especiais aparecem descofigurados, é possivel de descobrir o encoding desses arquivos?
preciso automatizar isso pois são muitos dados que temos aqui...

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:


---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

Linux - Junior Polegato

unread,
Oct 20, 2017, 2:18:28 PM10/20/17
to python...@googlegroups.com
Em 20-10-2017 15:32, Kyle Felipe Vieira Roberto escreveu:
> @Bleno eu usei o file.. mas ele retorna que o arquivo é binario... vou
> dar uma lida nesse chardet ai...

Olá!

        Um arquivo DBF é binário, pois compõe uma estrutura de tabelas
mas em alguma tabela que seria parte integrante do sistema/banco de
dados deverá estar especificando a codificação dos caracteres (wildcard
character).

        Dessa forma, é preciso abrir o arquivo DBF com software
próprio, descobrir em qual tabela tem gravado a codificação e pronto. Ou
ainda pegar um ou vários campo de caracteres, que contenham caracteres
não ASCII, e usar alguma biblioteca de detecção ou o olhômetro =-O


--

[]'s

Junior Polegato

Kyle Felipe Vieira Roberto

unread,
Oct 20, 2017, 2:29:34 PM10/20/17
to Python Brasil
@junior, exato, o DBF realmente não registra esse encoding nele...
Estou querendo agora é fazer dessa forma que apresentou, eu consigo acessar o dado dentro do DBF via python, agora quero ver como fazer o teste para saber o encoding...
e preciso de fazer isso também em um banco postgre, se há algo nele que retorne erros de encoding nas tabelas para poder acertar as erradas;;;
Reply all
Reply to author
Forward
0 new messages