Caratteri strani nel Terminale? Ecco come mostrare le lettere accentate in un programma C

A volte capita che, eseguendo un programma C appena compilato nel Terminale, questo stampi caratteri strani al posto delle lettere accentate.

Se sei in questa situazione, provo a spiegarti perché accade e come risolvere il problema.

Perché il Terminale non stampa correttamente le lettere accentate?

Questo succede perché il programma C e/o il Terminale usano una codifica dei caratteri diversa da quella attesa (ad esempio, ASCII invece di UTF-8 o ISO-8859-1).

Se il file sorgente o il Terminale non sono tutti configurati per la stessa codifica (tipicamente UTF-8), i caratteri accentati possono essere visualizzati come simboli strani o punti interrogativi.

Come mostrare correttamente le lettere accentate nel Terminale

Su Windows, se stai usando il Prompt dei Comandi, dovrai digitare questo comando e premere INVIO:

chcp 65001

Sempre su Windows, se come Terminale stai usando PowerShell, puoi digitare questo comando e premere INVIO:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

Infine, su MacOS e Linux puoi provare questo comando e premere INVIO:

export LANG=it_IT.UTF-8

Questi comandi impostano la codifica del Terminale a UTF-8. È quindi necessario che i file sorgenti siano salvati con questa codifica (VS Code di default salva in UTF-8)!

ATTENZIONE: i comandi descritti hanno effetto sulla sessione in corso. Se chiudi e riapri il Terminale probabilmente dovrai ripetere la procedura per impostare la codifica!

Altri contenuti che potrebbero interessarti: