我们尝试在Windows上使用Java和UTF-8。该应用程序在控制台上写入日志,我们希望对日志使用UTF-8,因为我们的应用程序具有国际化的日志。
可以配置JVM,以便使用-Dfile.encoding=UTF-8
作为JVM的参数来生成UTF-8。它工作正常,但Windows控制台上的输出出现乱码。
然后,我们可以将控制台的代码页设置为65001(chcp 65001
),但是在这种情况下,.bat
文件不起作用。这意味着当我们尝试通过脚本(名为start.bat)启动应用程序时,绝对没有任何 react 。该命令简单返回:
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代码点转换为字节序列或再次转换为字节序列。