java - 表格行字符替换为“?” mvn包后
问题描述
下面是一段在控制台中创建表的代码:
System.out.format( "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓%n" );
System.out.format( "┃ Party ┃%n" );
System.out.format( "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛%n" );
String align = "┃ %-30s ┃%n";
当我从 IDE 执行它时,输出如下:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Party ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
但是在我用 打包类之后mvn package
,这些行显示为?
输出:
????????????????????????????????????????????
? Party ?
????????????????????????????????????????????
有什么办法可以防止这种情况显示带有问号的表格?我知道使用+
或-
会解决,但我希望它显示出来。
解决方案
这是一个编码问题。Java 编译器没有使用您期望的字符集读取源代码,或者您运行代码的终端不支持呈现您正在输出的字符。
最简单的最有可能创建一个带有麻烦字符的字符串,然后遍历该字符串并打印出每个字符的 Unicode 值。如果是 63 - 问号 - 然后查看源代码的编码。如果这是您所期望的,请查看终端的代码页/编码。
如果您可以在调试器下运行程序,则不必更改程序,只需在 System.out.format 处设置断点,然后检查传入的字符串。
推荐阅读
- java - Java虚拟机处理数组
- r - 计算 AIC 和 BIC 的简单指数平滑 ses()
- listview - 如何在点击时更改 ListTile() 的背景颜色?
- ios - 获取喜欢帖子 Swift 和 Firestore 的用户列表
- python - Docker-compose Django Supervisord 配置
- python - LLDB:如何写入 AArch64 向量寄存器
- javascript - 将数组中字符串的长度相加(JavaScript)
- c++ - C ++如何从子类实例化抽象父类构造函数
- java - 如果线程 ID 是 Key,那么同时更新 HashMap 是否安全?
- gradle - Gradle 会自动推断任务之间的依赖关系吗?如果有,什么时候?