我们尝试在 Windows 上使用 Java 和 UTF-8。应用程序在控制台上写入日志,我们希望对日志使用 UTF-8,因为我们的应用程序具有国际化日志。
可以配置 JVM,使其生成 UTF-8,使用 -Dfile.encoding=UTF-8
作为 JVM 的参数。它工作正常,但 Windows 控制台上的输出是乱码。
然后,我们可以将控制台的代码页设置为65001(chcp 65001
),但是在这种情况下,.bat
文件不起作用。这意味着当我们尝试通过我们的脚本(名为 start.bat)启动我们的应用程序时,绝对没有任何反应。命令简单返回:
C:\Application> chcp 65001
Activated code page: 65001
C:\Application> start.bat
C:\Application>
但是没有chcp 65001
,没有问题,可以启动应用。
有什么提示吗?
最佳答案
试试 chcp 65001 && start.bat
chcp
命令更改代码页,65001 是 Windows 7 及更高版本下 UTF-8 的 Win32 代码页标识符。代码页或字符编码指定如何将 Unicode 代码点转换为字节序列或再转换回来。
关于Java、UTF-8 和 Windows 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54952/