代码页65001损坏。在65001下运行时,MS C运行时stdio函数返回的字节读取和写入的计数不正确,这会导致类似这样的奇怪行为。
它不是可修复的-您不能从使用C stdlib字节I / O函数(包括Java)的应用程序中可靠地使用Windows控制台进行Unipre I /
O。您可以通过调用Win32
API函数WriteConsoleW来破解它,以将Unipre内容直接发送到控制台,但是随后您就不得不担心检测stdout何时实际上是一个控制台(未重定向到文件)。
这是一个长期的祸患,MS对修复没有兴趣。



