【问题标题】:Java System.out.print Windows and unicode issueJava System.out.print Windows 和 unicode 问题
【发布时间】: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)。

标签: java windows unicode cmd


【解决方案1】:

你可能想试试\r\n

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

【讨论】:

  • 我不明白为什么当我想覆盖上次打印的内容时必须打印一个新行。
猜你喜欢
  • 2013-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-29
  • 2012-02-23
相关资源
最近更新 更多