Non ha nulla a che fare con codepage/codifica. Il tuo output non è testo semplice. Contiene le sequenze come [0;1;32m
. Queste stringhe (c'è anche un carattere [escape], non mostrato, prima di ciascuna di esse) sono istruzioni per il terminale per mostrare il testo in grassetto, corsivo, in vari colori, ecc. Ciò si traduce in un output più facile da leggere, se il tuo terminale lo supporta.
Dovrebbe esserci un'opzione per dire a clang di non cercare di abbellire l'output, ma di utilizzare invece testo normale. Controlla il manuale. (Non ne ho uno a portata di mano, quindi non posso dirti quale sarebbe il comando corretto.)
In alternativa, invece di rimuovere i colori dall'output, puoi visualizzare l'output colorato nel tuo terminale utilizzando l'opzione raw di less
less -r output.txt
Quei caratteri, come [0;33m
mi sembra il controllo dell'uscita del terminale. Fanno parte di una serie di sequenze di escape utilizzate frequentemente per applicare i colori al testo nel terminale. Nel suo stato grezzo come questo è anche spesso usato per applicare il colore al prompt di bash stesso - Ecco cosa ho usato in .bashrc
per anni su tutte le mie macchine:
export PS1='\[\033[1;33m\]\u\[\033[1;35m\]@\[\033[1;32m\]\h\[\033[0;36m\]\w\[\033[1;37m\]\$ \[\033[0;37m\]'
(La maggior parte pensa che sia brutto, ma a me piace).
Vedi se riesci a trovare un interruttore per rimuovere qualsiasi codice colore o simili dall'output dei tuoi comandi e vedi se questo aiuta.