J’essaie de transcoder un groupe de fichiers ASCII en UTF-8.
Pour cela, j’ai essayé d’utiliser iconv:
iconv -f US-ASCII -t UTF-8 infile> fichier de sortie
-f CODANT l’encodage de l’entrée
-t CODANT l’encodage de la sortie
Pourtant, ce fichier n’a pas été converti en UTF-8. C’est un fichier .dat.
Avant de poster ceci j’ai cherché dans les informations trouvées sur google comme
ASCII est un sous-ensemble de UTF-8, donc tous les fichiers ASCII sont déjà codés en UTF-8. Les octets dans le fichier ASCII et les octets qui résulteraient de “l’encodage en UTF-8” seraient exactement les mêmes octets. Il n’y a pas de différence entre eux.
Encodage forcé de US-ASCII à UTF-8 (iconv)
Meilleur moyen de convertir des fichiers texte entre des jeux de caractères?
Pourtant, les liens ci-dessus n’ont pas aidé.
Même s’il est en ASCII, il supportera UTF-8, car UTF-8 est super-set, l’autre partie qui va recevoir les fichiers de ma part a besoin d’un encodage de fichier en UTF-8. Il a juste besoin d’un format de fichier comme UTF-8.
Toutes les suggestions s’il vous plaît.
Merci d’avance.
Je suis un peu confus par la question, car, comme vous l’avez indiqué, l’ASCII est un sous-ensemble de UTF-8, donc tous les fichiers ASCII sont déjà encodés en UTF-8.
Si vous envoyez des fichiers contenant uniquement des caractères ASCII à l’autre interlocuteur, mais que l’autre partie se plaint de ne pas être «encodé UTF-8», alors je suppose qu’ils font référence au fait que le fichier ASCII comporte aucune marque d’ordre d’octets indiquant explicitement que le contenu est UTF-8.
Si tel est le cas, vous pouvez append une marque d’ordre d’octet en utilisant la réponse ici:
iconv: conversion de Windows ANSI en UTF-8 avec BOM
Si l’autre partie indique qu’il n’a pas besoin de la ‘nomenclature’ (marque d’ordre des octets), mais se plaint toujours que les fichiers ne sont pas UTF-8, une autre possibilité est que votre fichier initial ne soit pas réellement ASCII qui sont encodés en utilisant ANSI ou ISO-8859-1.
Édité pour append l’expérience suivante, après le commentaire de Ram concernant l’autre partie à la recherche du type en utilisant la commande ‘file’
Tims-MacBook-Pro:~ tjohns$ echo 'Stuff' > deleteme Tims-MacBook-Pro:~ tjohns$ cat deleteme Stuff Tims-MacBook-Pro:~ tjohns$ file -I deleteme deleteme: text/plain; charset=us-ascii Tims-MacBook-Pro:~ tjohns$ echo -ne '\xEF\xBB\xBF' > deleteme Tims-MacBook-Pro:~ tjohns$ echo 'Stuff' >> deleteme Tims-MacBook-Pro:~ tjohns$ cat deleteme Stuff Tims-MacBook-Pro:~ tjohns$ file -I deleteme deleteme: text/plain; charset=utf-8