I recently fixed some encoding issues in poddl (podcast downloader) (see changes on GitHub). I'm not an expert on Windows, but from what I understand Windows (NTFS) stores filenames in UTF-16 encoding — which of course invokes a lot of pain when doing cross-platform work. Almost all Unix-based OS: es (Linux, macOS, etc) uses UTF-8. This resulted in "corrupt" filenames on Windows when an episode title had characters outside the standard ASCII table. Super fun stuff...
Anyway, I finally added support for std::wstring and added conversion methods for all the UTF-8 <-> UTF-16 stuff. Microsoft has apparently done some work in recent years — supporting both UTF-8 and UTF-16. Maybe someday they'll go all the way. I imagine that's not a small task due to all the legacy stuff they (have to?) support.