linux版navicat界面中文乱码需同步修复系统locale(设lang=en_us.utf-8)和安装中文字体(如fonts-wqy-microhei),并完全退出后重启navicat,二者缺一不可。
☞☞☞☞点击夸克ai手把手教你,操作像呼吸一样简单!☜☜☜☜☜

Linux 版 Navicat 界面中文显示为方块、问号或空白,**不是 Navicat 本身坏了,而是它完全依赖系统级的 LANG 和字体渲染能力**。改 Navicat 设置没用,必须先修系统。
检查并修正系统 locale(LANG 必须是 UTF-8)
Navicat 启动时读取 LANG 环境变量决定用哪种编码解析界面字符串。若值为 C、POSIX 或 zh_CN.GB18030,Java Swing 界面会跳过中文路径,直接 fallback 到无汉字的字体,结果就是方块。
- 运行
locale,确认输出中LANG=后是zh_CN.UTF-8或en_US.UTF-8(推荐后者,兼容性更稳) - 若不是,临时修复:在终端执行
export LANG=en_US.UTF-8再启动 Navicat(LANG=en_US.UTF-8 navicat) - 永久生效:编辑
~/.bashrc,末尾加export LANG=en_US.UTF-8,然后运行source ~/.bashrc - Ubuntu/Debian 用户注意:先用
locale -a | grep en_US.utf8确认 locale 已生成;没有就运行sudo locale-gen en_US.UTF-8
安装并启用支持中文的 TrueType 字体
即使 LANG 正确,若系统没装含汉字字形的字体,Navicat 仍会静默使用 DejaVu Sans 这类无中文字体,导致菜单、字段名全变问号。
- 验证是否缺字体:终端运行
fc-list :lang=zh,无输出即未安装中文字体 - Ubuntu/Debian:运行
sudo apt install -y fonts-wqy-microhei(22.04+ 推荐,比wqy-zenhei更适配高 DPI) - CentOS/RHEL:下载
wqy-zenhei的.ttf文件,复制到/usr/share/fonts/truetype/wqy/,再执行sudo fc-cache -fv(必须带-v,Java 应用依赖完整缓存重建) - 别装
fonts-arphic-ukai—— 高 DPI 下发虚,且部分汉字缺失
Navicat 启动前必须确保环境变量已加载
很多人改了 ~/.bashrc 却仍乱码,是因为图形界面启动 Navicat 时根本没读这个文件 —— 它走的是桌面环境的 session 启动链,不经过 shell。
- 最可靠方式:编辑 Navicat 的启动脚本(如
start_navicat),在#!/bin/bash后第一行插入:export LANG=en_US.UTF-8 - 若用桌面快捷方式(.desktop 文件),在
Exec=行开头加上env LANG=en_US.UTF-8,例如:Exec=env LANG=en_US.UTF-8 /path/to/navicat - 不要依赖
/etc/locale.conf—— GNOME/KDE 桌面不一定读它,Java 进程也不保证继承
真正容易被忽略的是:**字体和 LANG 必须同时生效,且 Navicat 必须完全退出后重启**。只改一个、或只关闭窗口不杀进程,都会让改动不触发 Java AWT/Swing 的字体重载逻辑 —— 看似重启了,实则还是旧上下文。











