Loading... # Windows 终端 JDK工具 中文乱码问题解决方案 在 Windows 环境中使用 `keytool` 等 Java 命令行工具时,可能会出现中文输出乱码的问题。尤其是在 PowerShell 或 CMD 中查看 `-help` 等命令时最为常见。 本篇文档介绍几种解决中文乱码的方法,包括临时方案、永久配置方法等,适用于 Windows 10/11。 --- ## 🧪 问题复现示例  上述乱码是由于终端使用的编码与 Java 程序默认的 UTF-8 不一致造成的。 --- ## ✅ 方法一:临时设置 UTF-8 编码(当前终端生效) 在当前 PowerShell 会话中执行以下命令: ```powershell $OutputEncoding = [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $env:JAVA_TOOL_OPTIONS = "-Dfile.encoding=UTF-8" ``` 然后再执行 `keytool -h` 等命令即可正常显示中文。  > ⚠️ 此方法仅在当前窗口有效,关闭后失效。 --- ## ✅ 方法二:永久设置 JAVA\_TOOL\_OPTIONS 环境变量(推荐) 1. 打开「系统属性」 → 「环境变量」 2. 在「用户变量」或「系统变量」中点击【新建】 * 变量名:`JAVA_TOOL_OPTIONS` * 变量值:`-Dfile.encoding=UTF-8` 3. 保存并关闭所有窗口 4. 重启 PowerShell / CMD 即可生效 > ✅ 此方法适用于所有终端程序,包括 PowerShell、CMD、IDE 等 --- ## ✅ 方法三:配置 PowerShell 启动脚本(仅适用于 PowerShell) 如果不想全局修改,也可以仅针对 PowerShell 做配置: ### 步骤 1:打开配置文件 ```powershell notepad $PROFILE ``` ### 步骤 2:添加如下配置 ```powershell $env:JAVA_TOOL_OPTIONS = "-Dfile.encoding=UTF-8" ``` 保存后,每次打开 PowerShell 都会自动设置该变量。 --- ## ✅ 方法四:切换控制台编码(临时) 执行命令将控制台编码改为 UTF-8: ```powershell chcp 65001 ``` 虽然不能解决所有乱码问题,但可改善部分 Java 工具在控制台的输出效果。 --- ## ✅ 其他建议 * 如果安装了 **Git Bash** 或 **WSL(Windows 子系统 Linux)** ,它们默认使用 UTF-8,可无乱码使用 `keytool`。 * 在 VS Code 的终端中使用 UTF-8 通常也不会乱码。 --- ## 🔚 总结 |方案|生效范围|推荐度| | -------------------------| -----------------| ------------| |设置系统环境变量|全局|⭐⭐⭐⭐⭐| |设置 PowerShell Profile|PowerShell 专用|⭐⭐⭐⭐| |临时设置`$env`变量|当前终端|⭐⭐⭐| |使用 Git Bash / WSL|外部终端|⭐⭐⭐⭐| 通过以上方法,可以彻底解决在 Windows 控制台中使用 `keytool` 输出中文乱码的问题。 最后修改:2025 年 04 月 10 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果文章有帮助到你,请随意赞赏