L'encoding dei caratteri e' un argomento decisamente subdolo e molto spesso NEMMENO chi ci lavora 8 ore al giorno 5 giorni la settimanat (gli HTML-isti) ci capisce qualcosa (vedasi i pasticci con i caratteri in siti istituzionali italiani).
Ci sono diversi aspetti da considerare:
1) i tool che usi di solito, in generale supportano l'UTF8, quindi Word, l'IDE che usi per lo viluppo software, ecc.
2) Alcuni IDE SUPPORTANO l'iso 8859, QUINDI, quando fai copia/incolla da Word, ad esempio, sanno fare la conversione.
3) Questo vuol dire che quando compili, compili in base all'encoding deciso dal'ambiente di sviluppo.
4) quando stampi, usi l'encoding del device su cui vai a stampare. Per la console e' l'ISO 8859 (Windows-1252)
Quindi, se i caratteri non cincidono, vuol dire che sono in gioco encoding diversi.
La regola dovrebbe essere: si ragiona SEMPRE in UNICODE e suoi encoding (UTF-8, UTF16, UTF-32, ...).
Se, quando si stampa qualcosa, non escono i caratteri giusti, si deve trovare il modo di far accettare al dispositivo l'UNICODE: o lo accetta mediante qualche configurazione, OPPURE si implementa uno strato di adattamento che converte DA UNICODE all'encoding specifico del dispositivo, ad esempio da UNCODE a ISO8859.
Ed, ovviamente, vale anche il contrario
Nota: CP 850, Iso 8859-1, Windows 1252 in pratica sono sempre la stessa cosa.
Non ho seguito l'evoluzione storica e ci sono alcune variazioni, ma su wikipedia puoi trovare un po' di documentazione
https://en.wikipedia.org/wiki/Code_page_85
https://en.wikipedia.org/wiki/ISO/IEC_8859-
https://en.wikipedia.org/wiki/Windows-125
https://en.wikipedia.org/wiki/ISO_8859-1