Conversão de charset com enca

Iniciado por mauriciowedo, 18 de Novembro de 2011, 12:34

tópico anterior - próximo tópico

mauriciowedo

Olá fórum, estou tentando utilizar o enca para converter o charset de alguns arquivos mas estou esbarrando em alguma limitação de linguagem desconhecida ou não suportada. Pelos outputs abaixo, dá pra ver que o locale que uso não faz parte da lista que o enca reconhece e a dúvida que fica é: como incrementar a lista de charset que o enca reconhece? É possível instalar algum tipo de pacote que amplie o suporte?

Caso não seja possível fazer o que preciso com o enca, vocês conhecem outros comandos que poderiam ajudar nesta tarefa?

Obrigado pelo suporte!




prompt> file -i bd.sql
bd.sql: text/plain; charset=us-ascii

prompt> enca bd.sql
enca: Language `pt' is unknown or not supported.
Run `enca --list languages' to get list of supported languages.
Run `enca -L none' to test only language independent, multibyte encodings.

prompt> enca --list languages
belarussian: CP1251 IBM866 ISO-8859-5 KOI8-UNI maccyr IBM855 KOI8-U
  bulgarian: CP1251 ISO-8859-5 IBM855 maccyr ECMA-113
      czech: ISO-8859-2 CP1250 IBM852 KEYBCS2 macce KOI-8_CS_2 CORK
   estonian: ISO-8859-4 CP1257 IBM775 ISO-8859-13 macce baltic
   croatian: CP1250 ISO-8859-2 IBM852 macce CORK
  hungarian: ISO-8859-2 CP1250 IBM852 macce CORK
lithuanian: CP1257 ISO-8859-4 IBM775 ISO-8859-13 macce baltic
    latvian: CP1257 ISO-8859-4 IBM775 ISO-8859-13 macce baltic
     polish: ISO-8859-2 CP1250 IBM852 macce ISO-8859-13 ISO-8859-16 baltic CORK
    russian: KOI8-R CP1251 ISO-8859-5 IBM866 maccyr
     slovak: CP1250 ISO-8859-2 IBM852 KEYBCS2 macce KOI-8_CS_2 CORK
    slovene: ISO-8859-2 CP1250 IBM852 macce CORK
  ukrainian: CP1251 IBM855 ISO-8859-5 CP1125 KOI8-U maccyr
    chinese: GBK BIG5 HZ
       none:

prompt> locale
LANG=pt_BR.utf8
LANGUAGE=pt_BR.iso885915
LC_CTYPE="pt_BR.utf8"
LC_NUMERIC="pt_BR.utf8"
LC_TIME="pt_BR.utf8"
LC_COLLATE="pt_BR.utf8"
LC_MONETARY="pt_BR.utf8"
LC_MESSAGES="pt_BR.utf8"
LC_PAPER="pt_BR.utf8"
LC_NAME="pt_BR.utf8"
LC_ADDRESS="pt_BR.utf8"
LC_TELEPHONE="pt_BR.utf8"
LC_MEASUREMENT="pt_BR.utf8"
LC_IDENTIFICATION="pt_BR.utf8"
LC_ALL=

prompt>  locale -a
C
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US
en_US.iso88591
en_US.utf8
en_ZA.utf8
en_ZW.utf8
POSIX
pt_BR
pt_BR.iso885915
pt_BR.utf8
pt_PT.utf8




mauriciowedo

Forum, contornei o problema manualmente pois eram apenas 3 arquivos com problema. Aprofundando um pouco a pesquisa foi possível chegar na dica do comando ...

prompt> file -i <arquivo>

... que mostra o charset do <arquivo> e também na dica do iconv que faz as conversões assim como o enca mas oferece uma lista bem mais extensa de conjuntos de caracteres. Um link interessante é deste conversor online http://www.fileformat.info/convert/text/charset.htm