Sublime Text3 编译Java乱码问题解决方案

0x00 问题描述

在网上搜索Sublime Text3乱码的问题,基本所有的描述都是安装GBKConvertUTF-8的插件,这个插件安装后,确实能够以正确编码方式的保存Java文件,但是当你的代码出错时,Sublime Text会解析JAVAC的提示信息,这个信息却无法以正确的编码方式读取,导致以下的问题.

 

 

 上图中会发现,代码的提示信息,以及代码的保存方式都出现了问题,我们这次的解决方案不从Sublime Text入手,从Java的相关配置入手.

0x01 配置环境

  • Sublime Text 3 版本为:3.2.1 Build 3207

 

  • Java JDK版本为 13.0.2 Build 13.0.2+8

注意:版本不同,若按照此方式配置可能不会解决问题,请多多尝试 

0x02 配置JAVA 

Java官方文档中提出,可以修改Java的编码方式,只需要在环境变量中新建JAVA_TOOL_OPTIONS变量,变量值为:-Dfile.encoding=UTF-8,若如此设置完成后,无法显示中文,再加入 -Duser.language=en -Duser.country=US,设置语言和区域分别为英文和美国,下面分别介绍两种设置方式.

 1.下图为仅设置编码方式的效果图

2.下图为设置编码方式以及语言和区域的效果图

 

0x03 后记

### 解决 Sublime Text 4 打开文件时出现的乱码问题 #### 设置正确的编码方式 当遇到 Sublime Text 4 打开文件显示为乱码的情况,通常是因为文件保存时使用的字符编码与 Sublime Text 默认识别的编码不匹配。对于 ANSI 编码的文件,在 Windows 系统上尤为常见[^2]。 为了修正这一情况,可以采取如下措施: - **手动更改文件编码** 当打开一个已存在的文件并发现其存在乱码现象时,可以通过以下方法临时调整查看效果: - 使用 `Ctrl + Shift + P` 调出命令面板; - 输入 "Set Encoding" 并选择合适的编码选项(如 `Western (Windows 1252)` 对应于常见的 ANSI 编码),这有助于正确解析文件中的中文字符。 - **配置默认编码设置** 若要使 Sublime Text 总是以特定的方式处理新创建或未指定编码类型的现有文件,则可以在首选项中设定全局或项目级别的编码偏好: - 进入菜单栏依次点击 `Preferences -> Settings`; - 将 `"default_encoding": "UTF-8"` 修改为你希望作为默认值的其他编码形式,例如 `"default_encoding": " Western (Windows 1252)"` 来适应大多数基于 GBK 的文本文件; - 同样地,也可以通过添加 `"fallback_encoding": " Western (Windows 1252)"` 来确保即使在检测不到确切编码的情况下也能尝试使用此备选方案来加载文件[^3]. ```json { "default_encoding": "Western (Windows 1252)", "fallback_encoding": "Western (Windows 1252)" } ``` #### Java 源代码编译过程中避免乱码的方法 如果是在编写 Java 源代码的过程中遇到了类似的乱码困扰,并且计划继续沿用 Sublime Text 作为编辑器的话,建议考虑采用以下策略之一来简化工作流程: - **指定编译参数** 在命令提示符窗口执行编译操作时附加 `-encoding UTF-8` 参数,这样可以让 JDK 明确知道源文件的实际编码格式从而防止潜在的转换错误发生: ```bash javac -encoding UTF-8 Example.java ``` - **切换到兼容性更好的开发工具** 如果频繁遭遇此类麻烦或者有更复杂的需求,不妨评估转向 Eclipse 或 IntelliJ IDEA 等集成开发环境的可能性。这些 IDE 不仅提供了更为全面的功能集和支持范围广泛的插件生态系统,而且往往内置了更加完善的多字节字符集管理机制.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值