Moment! Es steht nichts in irgendeiner Datei. Das Script erzeugt die Daten erst und schreibt sie dann in eine Datei und die muss UTF-8 ohne BOM sein. Hat hier für diese Frage auch nichts mit STDOUT zu tun.
Für Alle Handler, egal ob STDOUT, STDIN oder FileHandler gilt: Hier wird mit Oktetten, mit Bytes gearbeitet. http://rolfrost.de/chars