mvn包后面的表行字符将替换为“?”

gudnpqoy  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(365)

下面是在控制台中创建表的一段代码:

System.out.format( "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓%n" );
System.out.format( "┃                    Party                 ┃%n" );
System.out.format( "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛%n" );
String align = "┃ %-30s ┃%n";

当我从ide执行它时,输出如下:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                    Party                 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

但是在我用 mvn package ,这些行显示为 ? 输入输出:

????????????????????????????????????????????
?                    Party                 ?
????????????????????????????????????????????

有什么办法能阻止这个用问号表示的表吗?我知道使用 + 或者 - 会解决的,但我希望它能像那样表现出来。

3htmauhk

3htmauhk1#

这是一个编码问题。java编译器没有使用您期望的字符集读取源代码,或者运行代码的终端不支持呈现您正在输出的字符。
最简单的方法是创建一个包含麻烦字符的字符串,然后循环遍历该字符串并打印出每个字符的unicode值。如果它是63个问号,那么看看你的源代码。如果它是您所期望的,那么请查看终端的代码页/编码。
如果可以在调试器下运行程序,则不必更改程序,只需在system.out.format处设置断点,然后检查传入的字符串。

相关问题