Currently Windows command line allows any Unicode symbols to be typed and passed to the program . What has been set as a locale is being used ONLY by non-Unicode aware "old" programs providing backward compatibility. Existing base code however insists on receiving arguments in locale currently set for non-unicode programs, then attempts to convert them to wide characters using setlocale(LC_ALL, "") thus ignoring Unicode. There is no need for such conversion as Windows provides all arguments properly in wide characters already. Proposed fix corrects the situation.