Java System.out.print Windows和unicode问题

Java System.out.print Windows和unicode问题,java,windows,unicode,cmd,Java,Windows,Unicode,Cmd,我正在打印一行在Windowscmd.exe中被覆盖的内容(如状态栏)。我使用System.out.print(“\r”+fileName+”+progress)来实现这一点 问题是,如果fileName为UTF-8,Windows不会正确返回到行首并覆盖最后一条消息 小问题,但我想看看是否有解决办法。谢谢 您可能要尝试使用\r\n: System.out.print("\r" + System.getProperty("line.separator") + "bla bla"); 我不明白为

我正在打印一行在Windows
cmd.exe
中被覆盖的内容(如状态栏)。我使用
System.out.print(“\r”+fileName+”+progress)
来实现这一点

问题是,如果
fileName
为UTF-8,Windows不会正确返回到行首并覆盖最后一条消息


小问题,但我想看看是否有解决办法。谢谢

您可能要尝试使用
\r\n

System.out.print("\r" + System.getProperty("line.separator") + "bla bla");

我不明白为什么我要在覆盖上次打印的内容时打印新行。
fileName
是一个Unicode字符串,没有编码。其中包含什么字符,您要打印到的控制台是什么代码页?请注意,一般来说,Unicode控制台和文件名访问在使用MS C运行时的
stdio
实现的应用程序/语言(如Java)中被搞得一团糟。您不应该期望
\r
具有回车的含义。是的,我知道这听起来很愚蠢。要创建某种状态栏,您应该使用终端控制设施(不知道在Java中是如何实现的;类似于C中的诅咒)。