Cela n'a rien à voir avec les pages de code/encodage. Votre sortie n'est pas en texte brut. Il contient les séquences comme [0;1;32m
. Ces chaînes (il y a un caractère, non affiché, [escape] ainsi avant chacune d'entre elles) sont des instructions au terminal pour afficher le texte en gras, en italique, en différentes couleurs, etc. Il en résulte une sortie plus facile à lire, si votre terminal le prend en charge.
Il devrait y avoir une option pour indiquer à clang de ne pas essayer d'embellir la sortie, mais d'utiliser du texte brut à la place. Vérifiez le manuel. (Je n'en ai pas sous la main, donc je ne peux pas vous dire quelle serait la bonne commande.)
Alternativement, au lieu de supprimer les couleurs de la sortie, vous pouvez afficher la sortie colorée dans votre terminal en utilisant l'option brute de less
less -r output.txt
Ces caractères, tels que [0;33m
ressemble à un contrôle de sortie terminal pour moi. Ils font partie d'un ensemble de séquences d'échappement fréquemment utilisées pour appliquer des couleurs au texte dans le terminal. Dans son état brut comme celui-ci, il est également souvent utilisé pour appliquer une couleur à l'invite bash elle-même - Voici ce que j'ai utilisé dans .bashrc
depuis des années sur toutes mes machines :
export PS1='\[\033[1;33m\]\u\[\033[1;35m\]@\[\033[1;32m\]\h\[\033[0;36m\]\w\[\033[1;37m\]\$ \[\033[0;37m\]'
(La plupart pensent que c'est moche, mais j'aime ça).
Voyez si vous êtes en mesure de trouver un commutateur pour supprimer tout code couleur ou similaire de la sortie de vos commandes et voyez si cela vous aide.