问题描述

在 java 实现 ping/tracert 两个命令时候,输出到控制台里面中文乱码。

问题分析

应该是调用了终端,而 windows 的终端默认是 GBK 的编码,所以要对其更改管用的 utf-8 编码,改为 GBK 编码。
image.png

问题解决

编码更改

image.png
image.png
image.png

  • Reload 表示使用新编码重新加载,新编码不会保存到文件中
  • Convert 表示使用新编码进行转换,新编码会保存到文件中
  • 含有中文的代码文件,Convert 之后可能会使中文变成乱码,所以在转换成请做好备份,不然可能出现转换过程变成乱码,无法还原

BOM 问题

BOM:byte-order mark 字节顺序标记
https://zh.wikipedia.org/wiki/%E4%BD%8D%E5%85%83%E7%B5%84%E9%A0%86%E5%BA%8F%E8%A8%98%E8%99%9F

可能会出现的问题有:

编译报错:找不到符号未结束的字符串文字 或者是 提示 非法字符

解决办法:有上述百科可知,UTF-8 编码分有 BOM 和无 BOM 两种分类。IDEA 打开 Eclipse 项目,会提示出现上述编译问题,因为Eclipse 默认是有 BOM 的文件编译,而IDEA 只能编译无 BOM 的文件编译,所以解决办法就是对项目进行BOM 去除操作。