本文环境为vscode+oracle.oracle-java(如图),其他环境请适度参考。
刚开始接触java和vscode,很多东西不熟悉,遇到一些编码问题,记录在此,为以后遇到问题可以备考,也为其他遇到类似问题的人提供一个参考。
Windows系统:在vscode中终端调用的是系统自带cmd,powershell等,Windows系统设置未开启Unicode支持这一beta功能时,默认代码页为936,即GBK。而Java的坑点在于内部同时有UTF-8编码和本地编码(本地编码和系统设置有关,在Windows系统区域设置如下图所示时,为GBK),因此有部分场景会遇到编解码字符集不对等问题,本文目的为探究一种较好的解决方式。
有部分博文提到修改此设置,此处不建议,因为修改了系统全局的编码设置,有可能影响其他程序,而且有种杀鸡用牛刀的感觉。
根据官方文档:The "standard" output stream. This stream is already open and ready to accept output data. T