Comando iconv no Linux

Comando Iconv No Linux



Certifique-se de atualizar sua máquina Linux antes de se aprofundar na implementação deste artigo. Para a atualização, use o utilitário “apt” do Linux com a palavra-chave “update” e execute esta instrução usando os privilégios “sudo”. Embora possamos pular para a implementação agora, preferimos atualizar este sistema também, ou seja, uma atualização diminuiria a chance de ocorrência de erros e o sistema seria capaz de resolver os problemas com mais precisão. Portanto, use o utilitário “apt” dentro da instrução “upgrade”.

Vamos dar uma olhada no utilitário iconv do Linux em seu console de terminal agora. Portanto, estamos executando a instrução “iconv” com o sinalizador “-l” para exibir todos os conjuntos de caracteres codificados conhecidos e mais usados ​​em nossa tela do terminal. Ele exibirá os conjuntos de caracteres codificados junto com seus aliases. Você pode ver uma longa lista de conjuntos de caracteres codificados depois de rolar um pouco para baixo.







Agora, é hora de começar com a implementação do comando iconv no Linux. Primeiro, precisamos de diferentes tipos de arquivos em nosso sistema para converter um tipo de arquivo em outro tipo. Assim, estamos utilizando a consulta “touch” no terminal do console para criar três arquivos diferentes, ou seja, tipo Java, tipo C e tipo texto. Listando o conteúdo do diretório atual, você encontrará os arquivos recém-gerados nele.



Depois disso, veremos o tipo de cada arquivo separadamente usando a consulta “arquivo” junto com o nome de cada arquivo. Essa consulta precisa da opção “-I” para exibir o tipo de conjunto de caracteres de codificação para cada arquivo separadamente. Se você esqueceu de usar a opção “-I”, use o sinalizador “—mime”. Ambos os sinalizadores “-I” e “—mime” funcionam da mesma forma.



Agora, após executar a instrução “file” para o arquivo do tipo “txt”, obtivemos a codificação do tipo de caractere “US-ASCII”. Ao usar a mesma instrução para os arquivos Java e C, ela mostra que ambos os arquivos contêm codificação do tipo de caractere “BINARY”. Junto com isso, esta instrução mostra que todos esses três arquivos estão vazios.





Agora, vamos ilustrar o uso da instrução iconv no console para converter um arquivo de codificação de conjunto de caracteres específico para outra codificação de conjunto de caracteres. Antes disso, devemos adicionar algum código ou dados aos nossos arquivos. Portanto, adicionamos o código Java no arquivo “text.java”, o código C no arquivo “text.c” e adicionamos dados de texto no arquivo “test.txt”. A consulta cat foi usada aqui para exibir o conteúdo de todos os três arquivos, conforme apresentado abaixo:



Agora que adicionamos os dados com sucesso, veremos a codificação do conjunto de caracteres desses arquivos mais uma vez. Então, tentamos a mesma instrução de arquivo dentro do shell com o sinalizador “-I” e os nomes dos arquivos, ou seja, test.txt, test.java e test.c. A execução dessas três instruções separadamente para todos os três arquivos mostra que a codificação do conjunto de caracteres foi atualizada para os arquivos Java e C, permanecendo a mesma para o arquivo de texto, ou seja, US-ASCII. A codificação dos arquivos Java e C era anteriormente “binária”; agora, é 'US-ASCII'. Além disso, mostra que o arquivo de texto contém dados de texto simples, enquanto os outros dois arquivos de código contêm os scripts como conteúdo.

É hora de realizar a tarefa real necessária para este artigo, ou seja, converter uma codificação para outra usando o comando iconv no shell. Assim, estamos usando a instrução “iconv” dentro do terminal shell com os privilégios “sudo”. Este comando usa a opção “-f” para “de” e a opção “-t” para “para”, ou seja, de uma codificação para outra.

Após a opção “-f”, você deve especificar a codificação que seu arquivo já possui, ou seja, US-ASCII. Enquanto após a opção “-t”, você deve especificar a codificação que deseja substituir pela codificação antiga, ou seja, UNICODE. Você deve especificar o nome de um arquivo usado como fonte com a opção –o para criar sua imagem de objeto. A imagem do objeto seria outro arquivo, ou seja, “new.c”, do mesmo tipo, mas com a nova codificação e os mesmos dados.

Após executar a instrução a seguir, você obterá um novo arquivo no mesmo diretório, ou seja, conforme a consulta “ls”. Agora, verificaremos a codificação do conjunto de caracteres de um novo arquivo gerado usando a instrução iconv. Usaremos novamente a instrução “file” com a opção “-I” e o novo nome do arquivo, ou seja, new.c.

Você verá que o conjunto de caracteres para este novo arquivo foi diferente do conjunto de caracteres de um arquivo antigo, ou seja, o conjunto de caracteres UTF-16LE. Isso ocorre porque traduzimos a codificação US-ASCII para a codificação UNICODE usando a instrução iconv para nosso arquivo new.c. A consulta “cat” exibiu o mesmo código C dentro do arquivo, mas começou com alguns caracteres Unicode, conforme já apresentado.

De maneira muito semelhante, alteraremos a codificação do arquivo de texto test.txt. A instrução do arquivo mostra que ele possui uma codificação de conjunto de caracteres US-ASCII. O comando iconv foi usado com o mesmo formato para converter a codificação do arquivo test.txt de US-ASCII para TURKISH8. Você verá que isso não altera o US-ASCII para turco.

Depois disso, usamos o mesmo comando para cobrir a codificação do conjunto de caracteres US-ASCII para UTF-32 para o mesmo arquivo. Desta vez, funciona. Isso ocorre porque, às vezes, pode haver um problema ao converter um conjunto de codificação para outro ou a outra codificação pode não suportá-lo.

Conclusão

Este artigo discutiu como usar as instruções do iconv Linux para converter um conjunto de caracteres de codificação em outro usando seus aliases. Desta forma, tivemos que criar alguns arquivos de diferentes tipos.