【发布时间】:2013-07-23 11:48:49
【问题描述】:
我正在打印在 Windows cmd.exe 中被覆盖的行(如状态栏)。我通过使用System.out.print("\r" + fileName + " " + progress) 来做到这一点。
问题在于,如果fileName 是UTF-8,Windows 不会正确返回到行首并覆盖最后一条消息。
小问题,但我想看看是否有解决方案。谢谢!
【问题讨论】:
-
fileName是一个 Unicode 字符串,它没有编码。其中包含什么字符,您要打印到的控制台是什么代码页?请注意,通常 Unicode 控制台和文件名访问在使用 MS C 运行时的stdio实现的应用程序/语言(如 Java)中是不可修复的。 -
你不应该期望
\r有回车的意思。是的,我知道这听起来很愚蠢。要制作某种状态栏,您应该使用终端控制工具(不知道在 Java 中如何;类似于 C 中的 curses)。