No tiene nada que ver con páginas de códigos/codificación. Su salida no es texto sin formato. Contiene las secuencias como [0;1;32m
. Estas cadenas (hay un carácter [de escape], que no se muestra, también antes de cada una de ellas) son instrucciones para que el terminal muestre el texto en negrita, cursiva, en varios colores, etc. Esto da como resultado una salida más fácil de leer, si su terminal lo apoya.
Debería haber una opción para decirle a clang que no intente embellecer la salida, sino que use texto sin formato en su lugar. Consulta el manual. (No tengo uno a mano, así que no puedo decirle cuál sería el comando adecuado).
Alternativamente, en lugar de eliminar los colores de la salida, puede ver la salida en color en su terminal usando la opción sin procesar de less
less -r output.txt
Esos caracteres, como [0;33m
parece un control de salida de terminal para mí. Son parte de un conjunto de secuencias de escape que se usa con frecuencia para aplicar colores al texto en la terminal. En su estado bruto como este, también se usa a menudo para aplicar color al indicador de bash en sí mismo:esto es lo que he estado usando en .bashrc
durante años en todas mis máquinas:
export PS1='\[\033[1;33m\]\u\[\033[1;35m\]@\[\033[1;32m\]\h\[\033[0;36m\]\w\[\033[1;37m\]\$ \[\033[0;37m\]'
(La mayoría piensa que es feo, pero a mí me gusta).
Vea si puede encontrar un interruptor para eliminar cualquier código de color o similar de la salida de sus comandos y vea si eso ayuda.