It's one of the problems I've found a few times now. Basically windows does not allow to change the input encoding to UTF-8. It's actually a really big problem for my TermUtils, which simply does not work correctly with Unicode on Windows. It's just something that Windows does not support. The "correct" way of doing it under windows is to read input as utf-16 (widestring/unicode string) and use this or convert it to utf-8 internally.