myeclipse控制台中文显示问号需统一utf-8编码链路:1. ide全局及项目资源编码设为utf-8;2. jvm参数添加-dfile.encoding=utf-8;3. tomcat connector配置uriencoding="utf-8";4. properties文件须用native2ascii转义或改用xml格式。

MyEclipse控制台输出中文显示为问号,本质是编码链路中某处未统一使用UTF-8,导致Java按默认平台编码(如Mac的UTF-8或Windows的GBK)读取/写入时解码失败。修复需覆盖“IDE全局设置→项目文件编码→运行时JVM参数→Tomcat配置”四个关键环节,缺一不可。
统一IDE级文本编码
这是基础前提,影响新建文件和编辑器显示:
- 打开 Windows → Preferences → General → Workspace,将 Text file encoding 设为 Other: UTF-8
- 进入 General → Content Types,逐项展开:CSS、HTML、Java Source File、JSP、XML、Properties File 等,对每一项点击后,在下方 Default encoding 栏填入 UTF-8,再点 Update
- 对已有项目右键 → Properties → Resource,同样设为 Other: UTF-8
确保JVM启动时强制UTF-8
控制台输出由JVM控制台流决定,必须显式指定编码:
- 修改 MyEclipse安装目录下的 eclipse.ini 文件,在最后一行添加:
-Dfile.encoding=UTF-8 - 在 Windows → Preferences → MyEclipse Enterprise Workbench → Servers → Tomcat → [你的版本] → JDK 页面,找到 Optional Java VM arguments 输入框,填入:
-Dfile.encoding=UTF-8 - 若用Run Configuration启动普通Java类,右键项目 → Run As → Run Configurations → Common → Encoding,选 Other: UTF-8
修正Tomcat服务器URL及Connector编码
Web项目通过Tomcat输出日志或System.out时,需同时配置HTTP请求与JVM层:
- 打开 Tomcat安装目录/conf/server.xml,定位到
<connector port="8080" ...></connector>行,在末尾添加:
URIEncoding="UTF-8" - 检查数据库连接URL(如MySQL),确保含完整参数:
jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8
注意&是XML转义符,不可写成&;UTF-8中的连字符不能省略
特别处理Properties文件中文
Java原生加载.properties文件强制用ISO-8859-1,即使文件存为UTF-8也会乱码:
- 不要直接在properties里写中文,改用
native2ascii工具转义,例如:
native2ascii -encoding UTF-8 app_zh_CN.properties app_zh_CN_utf8.properties - 或改用
.xml格式配置文件(支持encoding声明),避免此限制 - 开发阶段可临时用
new String("xxx".getBytes("ISO-8859-1"), "UTF-8")手动转码验证,但不推荐上线使用











