Unfortunately, character encodings are widely misunderstood, and implementations differ widely. A particular program may handle even similar encodings in very different fashions.
.NET doesn't provide a wrapper around the FileSystemWatcher, so I wrote my own. It monitors a directory and only throws one event when a new file is created or an existing file is