Eclipse窗口标题(DBeaver插件)出现不可打印字符
解决Eclipse窗口标题显示不可打印字符的问题
结合你提到的环境(Ubuntu 17.10、ru_RU.UTF-8区域设置、OpenJDK/Oracle JDK 8),我整理了几个可行的排查和修复方向,你可以逐一尝试:
1. 确保Java识别Webdings/Wingdings字体
Java并不会自动全盘识别系统安装的所有字体,尤其是这类特殊符号字体。你可以手动让Java加载它们:
- 先找到你的Java JRE字体目录,比如OpenJDK 8的路径通常是:
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/fonts - 把Webdings.ttf和Wingdings.ttf(如果是通过
ttf-mscorefonts-installer安装的,一般在/usr/share/fonts/truetype/msttcorefonts/目录下)复制到上述Java字体目录 - 执行
fc-cache -fv命令更新系统字体缓存,然后重启Eclipse
另外可以写个简单的Java程序验证字体是否被识别:
import java.awt.Font; import java.awt.GraphicsEnvironment; public class ListAvailableFonts { public static void main(String[] args) { GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); for (Font font : ge.getAllFonts()) { System.out.println(font.getFontName()); } } }
编译运行后,在输出里搜索Webdings/Wingdings,如果找不到,说明Java确实没识别到,上面的手动复制步骤就很有必要。
2. 调整Eclipse启动参数优化字体渲染
打开Eclipse安装目录下的eclipse.ini文件,添加以下参数后重启:
-Dsun.java2d.fontpath=/usr/share/fonts/truetype/msttcorefonts/ -Duser.language=ru -Duser.region=RU -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
- 第一行强制Java从系统的微软字体目录加载字体,确保特殊符号字体被优先调用
- 中间两行明确指定Java使用ru_RU区域设置,避免编码环境不一致
- 最后两行开启字体抗锯齿,改善特殊字符的显示效果
3. 排查工作区或插件的问题
不可打印字符可能来自某个项目名称、插件配置,而非系统或Java本身:
- 尝试创建并切换到一个全新的工作区(
File > Switch Workspace > Other...),如果新工作区的窗口标题正常,说明旧工作区里的某个项目或插件有异常字符 - 查看旧工作区的日志文件(路径:
工作区目录/.metadata/.log),搜索窗口标题相关的日志条目,看看有没有编码异常的提示
4. 更新Eclipse版本
Ubuntu 17.10默认源的Eclipse版本可能偏旧,旧版本对UTF-8编码和特殊字体的支持可能存在bug。你可以下载最新的稳定版Eclipse(比如Oxygen及以上版本),解压后直接运行,验证问题是否消失。
内容的提问来源于stack exchange,提问作者LeonidMew
相关产品推荐
相关产品推荐

