19 votes

Existe-t-il une application de ligne de commande Mac OS X capable de convertir les codages de texte d'un type à un autre ? (Plus précisément pour convertir Mac OS Roman en utf8)

Je voudrais appeler un utilitaire de ligne de commande dans Mac OS X 10.8 qui me donne la possibilité de convertir un fichier texte enregistré dans l'encodage standard Western Mac OS Roman en UTF-8, plus générique.

Je vais appeler l'utilitaire à partir d'un AppleScript que j'ai créé. AppleScript est extrêmement lent lorsqu'il travaille avec de très grands blocs de texte. C'est pourquoi je veux faire mon analyse et ma conversion de texte en utilisant la ligne de commande de l'OS X. J'ai trouvé un outil appelé "sed", qui me permet de faire l'analyse du texte. Cependant, il y a encore de nombreux éléments du fichier qui doivent être nettoyés, des caractères qui apparaissent comme des déchets si le fichier est ouvert en utf-8 (par exemple, les guillemets intelligents et les ellipses).

Je pense que le fait de forcer une conversion de l'encodage du texte peut aider à éliminer tous les caractères non-utf8 dans le fichier. Cependant, je ne vois pas comment "sed" peut facilement convertir l'encodage du texte.

J'aurai déjà enregistré le fichier txt temporaire, en tant que MacRoman, sur le disque en utilisant les routines AppleScript intégrées.

Exigences :

  • Ligne de commande pour la performance
  • Préférer les outils natifs car les autres utilisateurs de mon script ne disposeront pas nécessairement du jeu d'outils approprié s'il n'est pas intégré. (Bien que je puisse ajouter une vérification à mon script et abandonner si un outil nécessaire n'est pas présent).

Est-ce que l'un d'entre vous a une idée d'un outil en ligne de commande intégré qui peut convertir l'encodage du texte ou d'un paquetage existant qui est supérieur pour cette tâche ?

0 votes

@bmargulies : En fait, ce que j'essaie vraiment d'obtenir, c'est un moyen de convertir automatiquement les caractères fantaisistes, comme les ellipses et les guillemets intelligents en guillemets, apostrophes et points ASCII "réels", "purs". Est-ce que iconv peut le faire ? Ou dois-je convertir manuellement les fichiers ?

0 votes

@TomGewecke : En fait la source n'était pas MacRoman, c'était "iso-8859-1". Cependant, l'utilisation d'iconv n'a pas remplacé gracieusement (et automatiquement) les guillemets fantaisistes et les points de suspension par des guillemets et des points ASCII standard.

1 votes

Y a-t-il une raison pour laquelle vous devez avoir l'ascii plutôt que l'utf-8 que vous aviez demandé à l'origine ? Il n'y a bien sûr pas d'équivalent ascii de nombreux caractères en MacRoman ou ISO Latin 1, donc je ne pense pas que vous puissiez faire ce que vous voulez avec ce genre d'utilitaire. Une recherche/remplacement est probablement nécessaire.

34voto

nohillside Points 82672

iconv est définitivement l'outil de choix ici :

iconv -f MACROMAN -t UTF-8 your-roman-encoded-file.txt > utf-8-encoded-file.txt

Exécuter iconv --list pour voir une liste de tous les encodages supportés.

0 votes

Une fois que j'ai compris qu'il ne s'agissait pas de MacRoman, mais de "iso-8859-1", j'ai réessayé. Il n'a toujours pas fait ce que je voulais qu'il fasse. Je ne pense pas qu'iconv puisse faire ce que je veux : remplacer gracieusement tous les caractères étendus fantaisistes par des points, apostrophes et guillemets standard.

12voto

Fuzzy Purple Monkey Points 702

Une autre façon de convertir les caractères non ASCII en variantes ASCII est d'utiliser la méthode suivante iconv -t ASCII//TRANSLIT :

$ echo ‘’“”–—…äé | iconv -t ASCII//TRANSLIT
''""--..."a'e

ASCII//IGNORE supprimerait les caractères non ASCII, mais vous pouvez également le faire avec, par exemple, l'option tr -dc '\0-\177' .

0 votes

Fait iconv permettre de translittérer : ä a" ?

0 votes

@danielAzuelos Je ne sais pas. La façon dont les caractères sont remplacés dépend de l'implémentation : par exemple, l'iconv fourni avec Debian remplace les caractères suivants ä avec juste a .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X