Como converter arquivos para a codificação UTF-8 no Linux

Como converter arquivos para a codificação UTF-8 no Linux

Neste guia, descreveremos o que a codificação de personagens e cobriremos alguns exemplos de conversão de arquivos de um caractere codificando para outro usando uma ferramenta de linha de comando. Então, finalmente, veremos como converter vários arquivos de qualquer conjunto de caracteres (CHARST) para UTF-8 codificação no Linux.

Como você provavelmente já pode ter em mente, um computador não entende ou armazena cartas, números ou qualquer outra coisa que nós, como humanos, possamos perceber, exceto bits. Um pouco tem apenas dois valores possíveis, ou seja, um 0 ou 1, verdadeiro ou falso, sim ou não. Tudo o que outras coisas, como letras, números, imagens devem ser representadas em bits para um computador processar.

Em termos simples, codificação de caracteres é uma maneira de informar um computador sobre como interpretar zeros crus e outros em caracteres reais, onde um personagem é representado por um conjunto de números. Quando digitamos texto em um arquivo, as palavras e frases que formamos são cozidas de diferentes caracteres, e os caracteres são organizados em um CHARST.

Existem vários esquemas de codificação por aí, como ASCII, Ansi, Unicode entre outros. Abaixo está um exemplo de ASCII codificação.

Bits de caracteres a 01000001 b 01000010 

Em Linux, o iconv A ferramenta de linha de comando é usada para converter texto de uma forma de codificação para outra.

Você pode verificar a codificação de um arquivo usando o arquivo comando, usando o -eu ou --MIME sinalizador que permite a impressão da string do tipo MIME, como nos exemplos abaixo:

$ arquivo -i carro.Java $ arquivo -i Cardriver.Java 
Verifique a codificação do arquivo no Linux

A sintaxe para usar iconv é o seguinte:

$ iconv opção $ iconv Opções -f from -coding -t to -coding inputfile (s) -o outputFile 

Onde -f ou --do código significa codificação de entrada e -t ou --para codificar Especifica a codificação de saída.

Para listar todos os conjuntos de caracteres codificados conhecidos, execute o comando abaixo:

$ iconv -l 
Charsets codificados na lista em Linux

Converter arquivos de UTF-8 para codificação ASCII

Em seguida, aprenderemos a converter de um esquema de codificação para outro. O comando abaixo se converte de ISO-8859-1 para UTF-8 codificação.

Considere um arquivo nomeado entrada.arquivo que contém os personagens:

� � � � 

Vamos começar verificando a codificação dos caracteres no arquivo e depois visualizamos o conteúdo do arquivo. De perto, podemos converter todos os personagens para ASCII codificação.

Depois de executar o iconv Comando, então verificamos o conteúdo do arquivo de saída e a nova codificação dos caracteres como abaixo.

$ arquivo -i entrada.Arquivo $ entrada de gato.Arquivo $ iconv -f ISO-8859-1 -T UTF-8 // Entrada transmitida.Arquivo -o out.Arquive $ CAT fora.arquivo $ arquivo -i out.arquivo 
Converta UTF-8 em ASCII em Linux

Observação: Se a string //IGNORAR é adicionado ao codificação, caracteres que não podem ser convertidos e um erro é exibido após a conversão.

Novamente, supondo que a corda // Transmit é adicionado ao codificação como no exemplo acima (ASCII // Transmit), os caracteres que estão sendo convertidos são transliterados conforme necessário e se possível. O que implica no caso de um personagem não poder ser representado no conjunto de caracteres de destino, ele pode ser aproximado através de um ou mais caracteres de aparência semelhante.

Consequentemente, qualquer personagem que não possa ser transliterado e não está no conjunto de caracteres de destino é substituído por um ponto de interrogação (?) na saída.

Converter vários arquivos para a codificação UTF-8

Voltando ao nosso tópico principal, para converter vários ou todos os arquivos em um diretório para a codificação UTF-8, você pode escrever um pequeno script de shell chamado codificação.sh do seguinte modo:

#!/bin/bash #enter entrada codificação aqui de_encoding = "value_here" #output coding (utf -8) to_encoding = "utf -8" #convert convert = "iconv -f $ from_encoding -t $ to_encoding" #loop to convert vários arquivos para arquivo em *.TXT; Faça $ Convert "$ arquivo" -o "$ FILE%.TXT.UTF8.convertido "pronto, saia 0 

Salve o arquivo e faça o script executável. Execute -o no diretório onde seus arquivos (*.TXT) estão localizados.

$ chmod +x codificação.sh $ ./codificação.sh 

Importante: Você também pode usar este script para conversão geral de vários arquivos de um dado codificação para outro, basta brincar com os valores do From_Encoding e To_encoding variável, não esquecendo o nome do arquivo de saída "$ arquivo%.TXT.UTF8.convertido".

Para mais informações, veja através do iconv página de homem.

$ MAN ICONV 

Para resumir este guia, entender a codificação e como converter de um esquema de codificação de caracteres para outro é o conhecimento necessário para cada usuário de computador mais para os programadores quando se trata de lidar com o texto.

Por fim, você pode entrar em contato conosco usando a seção de comentários abaixo para obter perguntas ou feedback.