Aha, chyba je na obou stranách drátu. Vy píšete o UTF na FS, což je špatně (máte zřejmě na mysli soubory v UTF-8). Já čtu UDF na FS, což je také špatně.
Ve Windows se při otevírání souborů zkontroluje, jestli má na začátku BOM (Byte Order Mark). Pokud BOM není, a text zjevně není v Unicode UTF-16, interpretuje se v lokální code page (u nás ANSI 1250). Takže když si uložíte soubor s BOM na začátku (Unicode Consortium doporučuje), nebudete mít žádný problém.
Unixy ovšem Unicode nikdy pořádně neuměly. Jednoho dne kdosi vymyslel, že neschopnost používat Unicode obejde pomocí UTF-8. Pak aplikace vlastně ani nemusí vědět, že dělají s Unicodem. BOM používat nešlo, protože unixové skripty mají na prvním řádku cestu k interpretu (bash/PERL/etc). A obsluha BOM by vyžadovala zásah do shellu. Od té doby na unixech nikdo není schopen poznat, jestli je daný soubor v UTF-8, nebo v lokální kódové stránce (u nás ISO 8859–2). Samozřejmě je to „skvělé“ unixové řešení za 100 bodů, zpětná kompatibilita nulová.
Podobný bordel je na FS. Když máte názvy na FS v 8859–2, řada aplikací přesto píše názvy v UTF-8. Opět pak nikdo neví, který název je v jakém kódování. A opět v důsledku použití ošklivého hacku namísto opravdového řešení.