Eu tenho um arquivo txt:
$ file -i x.txt
x.txt: text/plain; charset=unknown-8bit
$ file x.txt
x.txt: Non-ISO extended-ASCII text, with CRLF line terminators
E existem alguns caracteres codificados incorretamente:
trwa³y, sta³y, usuwaæ
Como posso alterar a codificação deste arquivo para UTF-8? Eu tentei da seguinte maneira até agora:
$ iconv -f ASCII -t UTF-8 x.txt
puiconv: illegal input sequence at position 4
Talvez eu devesse usar de alguma forma extended ASCII
( high ASCII
), mas não consigo encontrá-lo na iconv
lista de codificação.
character-encoding
text
Patryk
fonte
fonte
iconv -f windows-1252 -t utf-8 file
Respostas:
file
informa "Texto ASCII estendido não ISO" porque detecta que isso é:Você precisa descobrir em qual codificação esse arquivo parece estar. Você pode tentar o reconhecimento automático do Enca . Pode ser necessário movê-lo na direção certa, informando em que idioma o texto é.
Para converter o arquivo, passe a
-x
opção:enca -L polish x.txt -x utf8 >x.utf8.txt
Se você não pode ou não deseja usar o Enca, pode adivinhar a codificação manualmente. Um pouco de olhar ao redor me disse que este é um texto em polonês e as palavras são trwały, stały, usuważ, então estamos procurando uma tradução onde
³
→ł
eæ
→ż
. Isto parece latino-2 ou latino-10 ou, mais provavelmente (dado “não-ISO” CP1250 que você está vendo como latin1 . Para converter o arquivo para UTF-8, você pode usar recode ou iconv .fonte
< x.txt > x.utf8.txt
Por que usamos<
e depois>
? Como funciona?<
e>
execute o redirecionamento de entrada e saída, respectivamente .Abra o arquivo de texto com o gedit e, na caixa de diálogo "salvar como ...", você verá a codificação atual.
fonte
Você tentou descobrir qual codificação exata é x.txt? Você obterá uma lista de codificações suportadas com
Às vezes acontece que eu tenho uma incompatibilidade entre latin1 e utf8. Em seguida, geralmente ajuda a convertê-lo de e para o utf8 e vice-versa.
fonte
Eu criei um script de conversão automatizado usando a biblioteca de encaixe , eu o uso no NAS para converter legendas em UTF-8, mas ele pode ser utilizado para qualquer conversão automatizada
Sinta-se livre para usar :)
EDITAR:
fonte