Navicat Linux版中文文件名显示为空格或方块,是Qt GUI层未启用Unicode全宽字符支持所致,仅影响文件选择框渲染,不影响实际导入;需手动输入路径、改英文名或建符号链接绕过,并确保CSV内容编码为UTF-8。

Navicat Linux版不支持中文文件名显示
Navicat for Linux(截至2026年9月)的GUI层仍基于较旧的Qt版本,对UTF-8文件名的渲染存在硬编码限制——它默认用QFontMetrics::width()计算字符宽度时未启用Unicode全宽字符支持,导致中文文件名在导入向导的文件选择框中显示为或空格。这不是编码问题,而是界面控件本身无法正确绘制多字节字符。
文件名乱码不影响实际导入过程
只要路径本身是合法UTF-8(Linux系统原生支持),Navicat底层仍能正确打开该文件。你看到的“乱码”仅出现在文件选择对话框的文本渲染层,open()系统调用接收的仍是正确的字节流。验证方法:在导入向导第一步点击“浏览”后,直接在地址栏手动输入完整中文路径(如/home/user/订单数据.csv),回车即可跳过渲染问题继续导入。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
绕过GUI文件名显示的三种实操方式
- 在终端中先用
ls -l --show-control-chars确认CSV文件名真实编码和存在性,避免因终端locale设置导致误判 - 把中文文件名临时改为英文(如
orders.csv),导入完成后再改回去——注意不要在Navicat运行时重命名,防止句柄失效 - 用
ln -s "/path/含中文.csv" /tmp/import.csv创建符号链接,Navicat可正常识别/tmp/import.csv这个纯ASCII路径
真正要盯紧的是文件内容编码,不是文件名
文件名显示异常容易让人误以为整个导入链路出错,但实际风险点永远在内容解码环节:确保CSV文件本身是UTF-8(无BOM或带BOM均可),并在Navicat导入向导第二步**手动选择UTF-8**,而非依赖Auto。Linux下没有Windows记事本那种ANSI陷阱,但若CSV由Windows Excel另存生成,仍可能含GBK编码——这时必须用iconv -f GBK -t UTF-8转码,否则内容会真乱码。

















