Nemá to nic společného s kódovými stránkami/kódováním. Váš výstup není prostý text. Obsahuje sekvence jako [0;1;32m
. Tyto řetězce (před každým z nich je zobrazen znak [escape]) jsou pokyny pro terminál, aby zobrazil text tučně, kurzívou, v různých barvách atd. Výsledkem je snazší čtení výstupu, pokud váš terminál podporuje to.
Měla by existovat možnost říci clangovi, aby se nesnažil zkrášlit výstup, ale místo toho použil prostý text. Zkontrolujte manuál. (Nemám žádný po ruce, takže vám nemohu říci, jaký by byl správný příkaz.)
Alternativně můžete místo odstranění barev z výstupu zobrazit barevný výstup ve svém terminálu pomocí možnosti raw less
less -r output.txt
Tyto znaky, například [0;33m
Připadá mi to jako ovládání výstupu na terminálu. Jsou součástí sady escape sekvencí, které se často používají k aplikaci barev na text v terminálu. Ve svém surovém stavu, jako je tento, se také často používá k nanášení barvy na samotný bash prompt - Zde je to, co jsem používal v .bashrc
roky na všech mých počítačích:
export PS1='\[\033[1;33m\]\u\[\033[1;35m\]@\[\033[1;32m\]\h\[\033[0;36m\]\w\[\033[1;37m\]\$ \[\033[0;37m\]'
(Většina si myslí, že je to ošklivé, ale mně se to líbí).
Podívejte se, zda jste schopni najít přepínač pro odstranění jakéhokoli barevného kódování nebo podobně z výstupu vašich příkazů, a zjistěte, zda to pomůže.