Table 行字符正在替换为“?”在 mvn 包之后

Table line characters are replacing with "?" after mvn package

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


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

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

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

但是在我用 mvn package 打包 类 之后,这些行在输出中显示为 ?

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

有什么方法可以防止 table 显示带问号?我知道使用 +- 会解决问题,但我希望它能像那样显示。

这是一个编码问题。 Java 编译器未使用您期望的字符集读取源代码,或者您 运行 您的代码所在的终端不支持呈现您正在输出的字符。

最简单的是最有可能用麻烦的字符创建一个String,然后遍历该字符串并打印出每个字符的Unicode值。如果是 63 - 问号 - 然后查看源代码的编码。如果它是您所期望的,那么请查看您终端的代码 page/encoding。

如果您可以 运行 在调试器下运行您的程序,则不必更改程序,只需在 System.out.format 处设置一个断点,然后检查传入的字符串。