Comando Unix para converter a codificação de caracteres em um arquivo .csv

2

Eu preciso de um comando Unix para converter um arquivo .csv que está no formato UNICODE para o formato ANSI.

O arquivo é importado do ambiente do Cognos e não posso fazer nenhuma alteração com o formato em cognos.

    
por sam 19.10.2015 / 20:30

2 respostas

5

Você pode usar o iconv para converter entre codificações

iconv -f utf-8 -t ascii oldfile > newfile
    
por 19.10.2015 / 21:01
0
  • Eu notei que meu problema é semelhante, mas não consegui encontrar o tipo de codificação que ele tinha.

  • O Notepad ++ diz no meu caso que era ANSI, então o comando acima dint me ajuda.

  • Agora existem muitos tipos de ANSI, então a melhor maneira de verificar isso foi digitar

    iconv -l

  • Isso lista todos os nomes de formato de codificação. Então, no meu caso, eu reduzi isso para:

    *iconv -l|grep -i ansi
    ANSI_X3.4-1968//
    ANSI_X3.4-1986//
    ANSI_X3.4//
    ANSI_X3.110-1983//
    ANSI_X3.110//
    MS-ANSI//*
    
  • Como eu não conheço o ANSI específico, experimentei quase todos eles até descobrir que era o MS-ANSI - eu deveria saber, desde que recebi o arquivo de um sistema da Microsoft. Então eu converti usando este comando:

    iconv -f MS-ANSI -t utf-8 sample.csv > sampleUTF8.csv

  • Portanto, da mesma forma, liste os tipos UNICODE em iconv -l e inverta a ordem para obter o tipo ANSI que você deseja e seria simples.

por 13.12.2018 / 21:33