Per operare correttamente con le codifiche devi definire due cose.

La codifica che ha attualmente la stringa/carattere.
La codifica con cui quella stringa/carattere deve andare in output.

Quando hai queste due informazioni puoi usare mb_string per trasformare l'enconding attuale nell'encoding con cui vuoi andare in output ed ottenere correttamente i caratteri.

Con mb_get_info(); puoi controllare se mb_string è disponibile e tutte le impostazioni che lo riguardano.

Per capire che encoding ha la stringa che vuoi mandare in output puoi usare mb_detect_encoding