[alibaba/arthas]Windows 下 mc 编译 java 文件中文乱码

2023-12-12 71 views
2
环境信息
  • arthas-boot.jar 或者 as.sh 的版本:3.7.1
  • Arthas 版本: 3.7.1
  • 操作系统版本: win11
  • 目标进程的JVM版本: jdk8
  • 执行arthas-boot的版本: jdk11
重现问题的步骤
  1. jad 反编译 class 到 java,正常,编辑 java 增加了几个中文字段保存(utf-8编码)
  2. mc 编译
  3. 编译出的 class 中文部分乱码
期望的结果

希望中文不乱码

实际运行的结果

中文乱码

通过 sysprop | grep encoding 查看不为何 file.encoding 始终是 GBK,哪怕我用 java -Dfile.encoding UTF-8 xxxx 启动、用 as.bat pid 启动,都是显示 GBK。

[arthas@27488]$ sysprop | grep encoding
 file.encoding.pkg                      sun.io
 sun.jnu.encoding                       GBK
 sun.stderr.encoding                    ms936
 sun.stdout.encoding                    ms936
 file.encoding                          GBK
 sun.io.unicode.encoding                UnicodeLittle

尝试将 java 文件改成 GBK 和 UTF8 都不行。

20231028_100315

20231028_095047

回答

2

图里显示的是 应用的 jvm 的 file.encoding ,要应用本身启动时设置。

启动 arthas-boot 时设置是没用的。

3

使用java -Dfile.encoding=UTF-8 -jar arthas-boot.jar