Commande iconv sous Linux

Commande Iconv Sous Linux



Assurez-vous de mettre à jour votre machine Linux avant d'approfondir la mise en œuvre de cet article. Pour la mise à jour, utilisez l'utilitaire 'apt' de Linux avec le mot-clé 'update' et exécutez cette instruction en utilisant les privilèges 'sudo'. Bien que nous puissions passer à la mise en œuvre maintenant, nous préférerions également mettre à niveau ce système, c'est-à-dire qu'une mise à niveau réduirait le risque d'apparition d'erreurs et que le système serait en mesure de résoudre les problèmes avec plus de précision. Par conséquent, utilisez l'utilitaire 'apt' dans l'instruction 'upgrade'.

Regardons maintenant l'utilitaire iconv de Linux dans sa console de terminal. Ainsi, nous avons exécuté l'instruction 'iconv' avec le drapeau '-l' pour afficher tous les jeux de caractères codés connus et les plus utilisés sur l'écran de notre terminal. Il affichera les jeux de caractères codés avec leurs alias. Vous pouvez voir une longue liste de jeux de caractères codés après avoir fait défiler un peu.







Il est maintenant temps de commencer avec l'implémentation de la commande iconv sous Linux. Tout d'abord, nous avons besoin de différents types de fichiers dans notre système pour convertir un type de fichier en un autre type. Ainsi, nous utilisons la requête 'touch' sur le terminal de la console pour créer trois fichiers différents, à savoir le type Java, le type C et le type texte. En listant le contenu du répertoire actuel, vous y trouverez les fichiers nouvellement générés.



Après cela, nous examinerons le type de chaque fichier séparément en utilisant la requête 'fichier' avec le nom de chaque fichier. Cette requête nécessite l'option '-I' pour afficher le type de jeu de caractères de codage pour chaque fichier séparément. Si vous avez oublié d'utiliser l'option '-I', utilisez plutôt le drapeau '-mime'. Les drapeaux '-I' et '-mime' fonctionnent de la même manière.



Maintenant, après avoir exécuté l'instruction 'file' pour le fichier de type 'txt', nous avons obtenu l'encodage de type de caractère 'US-ASCII'. En utilisant la même instruction pour les fichiers Java et C, cela montre que les deux fichiers contiennent un codage de type de caractère 'BINARY'. Parallèlement à cela, cette instruction montre que ces trois fichiers sont vides.





Nous allons maintenant illustrer l'utilisation de l'instruction iconv sur la console pour convertir un fichier d'encodage de jeu de caractères spécifique en un autre encodage de jeu de caractères. Avant cela, nous devons ajouter du code ou des données à nos fichiers. Par conséquent, nous avons ajouté le code Java dans le fichier 'text.java', le code C dans le fichier 'text.c' et ajouté des données de texte dans le fichier 'test.txt'. La requête cat a été utilisée ici pour afficher le contenu des trois fichiers, comme présenté ci-dessous :



Maintenant que nous avons ajouté les données avec succès, nous verrons à nouveau l'encodage du jeu de caractères de ces fichiers. Nous avons donc essayé la même instruction de fichier dans le shell avec le drapeau '-I' et les noms de fichiers, c'est-à-dire test.txt, test.java et test.c. L'exécution de ces trois instructions séparément pour les trois fichiers montre que l'encodage du jeu de caractères a été mis à jour pour les fichiers Java et C tout en restant le même pour le fichier texte, c'est-à-dire US-ASCII. L'encodage des fichiers Java et C était auparavant « binaire » ; maintenant, c'est 'US-ASCII'. En outre, il montre que le fichier texte contient des données en texte brut tandis que les deux autres fichiers de code contiennent les scripts comme contenu.

Il est temps d'effectuer la tâche réelle nécessaire pour cet article, c'est-à-dire convertir un encodage en un autre à l'aide de la commande iconv dans le shell. Ainsi, nous avons utilisé l'instruction 'iconv' dans le terminal shell avec les privilèges 'sudo'. Cette commande prend l'option '-f' pour 'from', et l'option '-t' pour 'to', c'est-à-dire d'un encodage à un autre.

Après l'option '-f', vous devez spécifier l'encodage que votre fichier a déjà, c'est-à-dire US-ASCII. Après l'option '-t', vous devez spécifier l'encodage que vous souhaitez remplacer par l'ancien encodage, c'est-à-dire UNICODE. Vous devez spécifier le nom d'un fichier utilisé comme source avec l'option –o pour créer son image d'objet. L'image de l'objet serait un autre fichier, c'est-à-dire 'new.c', du même type mais avec le nouveau codage et les mêmes données.

Après avoir exécuté l'instruction suivante, vous obtiendrez un nouveau fichier dans le même répertoire, c'est-à-dire selon la requête 'ls'. Maintenant, nous allons vérifier l'encodage du jeu de caractères d'un nouveau fichier généré à l'aide de l'instruction iconv. Nous utiliserons à nouveau l'instruction 'file' avec l'option '-I' et le nouveau nom de fichier, c'est-à-dire new.c.

Vous verrez que le jeu de caractères de ce nouveau fichier est différent du jeu de caractères d'un ancien fichier, c'est-à-dire le jeu de caractères UTF-16LE. C'est parce que nous avons traduit le codage US-ASCII en codage UNICODE en utilisant l'instruction iconv pour notre fichier new.c. La requête 'chat' affichait le même code C dans le fichier mais commençait avec quelques caractères Unicode, comme déjà présenté.

De manière très similaire, nous allons modifier l'encodage du fichier texte test.txt. L'instruction de fichier montre qu'il a un encodage de jeu de caractères US-ASCII. La commande iconv a été utilisée avec le même format pour convertir l'encodage du fichier test.txt de US-ASCII en TURKISH8. Vous verrez que cela ne change pas l'US-ASCII en turc.

Après cela, nous avons utilisé la même commande pour couvrir le codage du jeu de caractères US-ASCII à UTF-32 pour le même fichier. Cette fois, ça marche. En effet, il peut parfois y avoir un problème lors de la conversion d'un jeu d'encodage en un autre, ou l'autre encodage peut ne pas le prendre en charge.

Conclusion

Cet article explique comment utiliser les instructions iconv Linux pour convertir un jeu de caractères d'encodage en un autre en utilisant leurs alias. De cette manière, nous avons dû créer des fichiers de différents types.