java运行时终端输出乱码

备忘录

  • 说明
    前一阵子,使用vscode运行简单的java程序。因为比idea打开快捷方便点,写写小程序还是满舒服的。但是后来使用时发现会出现这种情况:”输入中文后,输出中文会乱码或者不显示”。这一看就是老问题了,编码问题。

  • 解决办法
    从几个角度来进行寻找解决办法:windows系统编码vscode的文件编码java运行时编码相关的参数设置

    • windows系统编码:
      中国地区默认GBK,我看见网上许多人说改为utf-8即可。我改了,没起作用,估计是我操作有问题。

    • vscode的文件编码
      vscode的文件file.encoding默认是utf-8。这是新建文件后默认的初始编码。
      (我试过无论文件编码是在UTF-8下还是GBK下,只要当前中文显示无乱码,在输出控制台后都没有乱码。比如System.out.println(“来啊”)。)
      暂时保持文件编码不变为utf-8,如果出现乱码就进行一下将其编码也改为GBK,设置java文件的编码为GBK,与系统编码保持一致。
      (vscode设置当前文件的编码很简便,底部栏切换即可)
      vscode:java运行时终端输出乱码

    • java运行时编码相关的参数设置
      在vscode里安装那几个插件后,一般运行java文件方式是run without debugging。我观察到在运行时,默认的编码是utf-8。
      vscode:java运行时终端输出乱码
      但是考虑到vscode运行调用的是windows的cmd或者powershell终端,而这两个都是用到windows系统编码,中文的windows系统编码默认GBK。所以可以尝试将运行时的编码设置为GBK。
      打开Run下的Open Configurations
      vscode:java运行时终端输出乱码
      添加编码参数 “encoding”: "GBK"vscode:java运行时终端输出乱码
      再运行就发现乱码消失了

    • 总结
      其他方法试了一些,只是没成功。这个解决方法的思路就是将运行时的编码参数设置成与windwos编码一样都是GBK,来实现中文输出的乱码问题,如果还是乱码再vscode的文件编码设置成GBK。至于为什么不把所有编码都设置为UTF-8,你懂的。
      建议还是idea,不必为这些问题烦心。

相关文章:

  • 2021-09-23
  • 2022-01-22
  • 2021-05-01
  • 2021-06-05
  • 2021-04-20
  • 2022-12-23
  • 2021-04-20
  • 2021-06-27
猜你喜欢
  • 2021-11-27
  • 2022-12-23
  • 2021-04-25
  • 2022-12-23
  • 2022-02-06
  • 2022-12-23
  • 2021-11-04
相关资源
相似解决方案