Qual é a ferramenta ou o método mais rápido e fácil para converter arquivos de texto entre conjuntos de caracteres?
Especificamente, preciso converter de UTF-8 para ISO-8859-15 e vice-versa.
Tudo funciona: one-liners na sua linguagem de script favorita, ferramentas de linha de comando ou outros utilitários para SO, sites da Web etc.
Melhores soluções até agora:
No Linux / UNIX / OS X / cygwin:
O gnu iconv sugerido por Troels Arvin é melhor usado como filtro . Parece estar universalmente disponível. Exemplo:
$ iconv -f UTF-8 -t ISO-8859-15 in.txt > out.txt
Como apontado por Ben , há um conversor online usando o iconv .
A recodificação de Gnu ( manual ) sugerida pela Cheekysoft converterá um ou vários arquivos no local . Exemplo:
$ recode UTF8..ISO-8859-15 in.txt
Este usa aliases mais curtos:
$ recode utf8..l9 in.txt
O Recode também suporta superfícies que podem ser usadas para converter entre diferentes tipos de final de linha e codificações:
Converta novas linhas de LF (Unix) para CR-LF (DOS):
$ recode ../CR-LF in.txt
Arquivo de codificação Base64:
$ recode ../Base64 in.txt
Você também pode combiná-los.
Converta um arquivo UTF8 codificado em Base64 com finais de linha Unix em arquivo Latin 1 codificado em Base64 com finais de linha Dos:
$ recode utf8/Base64..l1/CR-LF/Base64 file.txt
No Windows com Powershell ( Jay Bazuzi ):
PS C:\> gc -en utf8 in.txt | Out-File -en ascii out.txt
(No entanto, não há suporte ISO-8859-15; ele diz que os conjuntos de caracteres suportados são unicode, utf7, utf8, utf32, ascii, bigendianunicode, padrão e oem.)
Editar
Você quer dizer suporte iso-8859-1? O uso de "String" faz isso, por exemplo, vice-versa
gc -en string in.txt | Out-File -en utf8 out.txt
Nota: Os possíveis valores de enumeração são "Desconhecido, String, Unicode, Byte, BigEndianUnicode, UTF8, UTF7, Ascii".
- CsCvt - O Kalytta's Character Set Converter é outra ótima ferramenta de conversão baseada em linha de comando para Windows.
recode
irá funcionar como um filtro, bem como se você não passar quaisquer nomes de arquivos, por exemplo:recode utf8..l9 < in.txt > out.txt
enca
, não precisará especificar a codificação de entrada. Muitas vezes, é suficiente apenas para especificar o idioma: enca -L ru -x utf8 FILE.TXT
.
iconv -f UTF-32 -t UTF-8 input.csv > output.csv
apenas 770 mil linhas salvas, apenas um terço. O uso da versão local iconv -f UTF-32 -t UTF-8 file.csv
converteu com êxito todos os mais de 2 milhões de linhas.
gc -en Ascii readme.html | Out-File -en UTF8 readme.html
mas ele converte o arquivo para utf-8, mas então está vazio! O Notepad ++ diz que o arquivo é no formato Ansi, mas a leitura que eu entendo não é mesmo um conjunto de caracteres válido? uk.answers.yahoo.com/question/index?qid=20100927014115AAiRExF