MyEclipse乱码根本原因是工作空间默认使用GBK而项目多用UTF-8,必须优先将Workspace编码设为UTF-8,再逐类配置Content Types(Java/JSP/HTML/XML/Properties)默认编码为UTF-8,单个文件需先确认原始编码再转换,控制台乱码须添加-Dfile.encoding=UTF-8 JVM参数。

MyEclipse工作空间默认编码必须设为UTF-8
乱码最常出现在导入项目后,根本原因就是工作空间(Workspace)默认用的是操作系统本地编码——简体中文 Windows 下是 GBK,而现代项目几乎都用 UTF-8。不改这个,后面所有设置都是临时补救。
操作路径:Window → Preferences → General → Workspace,找到 Text file encoding,勾选 Other,下拉选择 UTF-8,点 Apply and Close。
注意:这个设置只影响新创建的文件,对已存在的文件不会重编码,也不会自动刷新已打开的文件。重启 MyEclipse 或手动关闭再打开文件才能生效。
按文件类型指定默认保存编码(如 .java、.jsp、.html)
仅靠工作空间级设置还不够。MyEclipse 对不同后缀的文件会查 Content Types 配置,如果没显式设置,它可能仍按旧规则走 —— 比如新建 .jsp 文件时,默认用 ISO-8859-1,导致页面内中文注释或字符串直接变问号。
必须逐类配置:
Window → Preferences → General → Content Types- 展开
Text节点,依次选中:Java Source File、JSP File、HTML File、XML File、Properties File - 每选中一项,在下方
Default encoding输入框填UTF-8,点Update
特别提醒:Properties File 很容易被忽略,但 .properties 中的中文若未用 native2ascii 转义,就必须确保它以 UTF-8 保存并被正确读取,否则 ResourceBundle 加载时直接抛 UnsupportedEncodingException。
单个文件编码不匹配时,别乱改,先确认原始编码
导入别人写的代码,打开全是方块或问号?这不是“设成 UTF-8 就完事”,而是当前解码方式和文件实际保存编码不一致。强行设成 UTF-8 可能让原本正常的 GBK 文件彻底不可读。
Eclipse IDE 是一款由 Eclipse 基金会管理的开源、跨平台集成开发环境。其核心基于 Java 构建,通过强大的插件架构可扩展支持 C/C++、Python、PHP 等多种编程语言。它提供丰富的代码编辑、调试和重构工具,并紧密集成 Git、Maven 等现代开发工具链,是全球众多开发者首选的 Java 开发利器。
正确做法:
- 右键该文件 →
Properties → Resource → Text file encoding - 先尝试
GBK(Windows 简体中文环境最常见);不行再试GB2312、ISO-8859-1 - 看到文字恢复清晰后,再手动另存为
UTF-8格式(需配合代码里声明,比如 JSP 加pageEncoding="UTF-8")
关键点:MyEclipse 的这个设置只是告诉编辑器“用什么编码去读”,不是转换文件本身。真要批量转码,得用外部工具或写脚本,IDE 内置不提供安全的批量重编码功能。
控制台输出中文仍是乱码?检查 JVM 启动参数
即使所有文件编码都设对了,控制台(Console)里 System.out.println("中文") 还是显示为 ???,问题大概率出在 JVM 层面。
MyEclipse 默认继承系统控制台编码,Windows CMD 是 GBK,而 Java String 在内存中是 Unicode,输出时会按平台默认编码转字节流。解决方法:
- 打开
Run → Run Configurations… - 选中你的启动配置 → 切到
Arguments标签页 - 在
VM arguments框里加:-Dfile.encoding=UTF-8
这行参数强制 JVM 所有 I/O 使用 UTF-8,包括 System.out 和日志输出。没加这句,光改 IDE 编码只是治标。
真正麻烦的不是设置项多,而是这些层级(Workspace / Content Type / Project / File / JVM)彼此独立又相互影响。改错一层,其他层看起来正常,但某天引入一个第三方库或换台机器,乱码就突然冒出来。动手前先看一眼当前文件的实际编码,比盲目点“UTF-8”靠谱得多。

















