温馨提示×

linux gitlab为何乱码

小樊
45
2026-09-10 11:00:21
栏目: 智能运维

Linux 上 GitLab 出现“乱码”,通常不是 GitLab 本身坏了,而是字符编码、终端环境或浏览器/客户端编码不一致导致的。下面按常见原因给你排查思路。


一、最常见原因:系统/终端 Locale 不是 UTF-8

现象

  • GitLab 页面或日志中出现 ????、方块、奇怪符号
  • git log 中文乱码
  • SSH 登录后命令输出乱码

检查

locale

正常应类似:

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

修复(Ubuntu / CentOS 通用)

sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8

或编辑:

/etc/default/locale
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

重启服务器或重新登录。


二、Git 提交信息中文乱码(非常常见)

现象

  • GitLab 网页显示提交信息乱码
  • git log 中文乱码

原因

提交时系统不是 UTF-8

解决

git config --global core.quotepath false
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8

并确保终端是 UTF-8。


三、数据库编码问题(较少见)

现象

  • 项目名、用户名中文乱码
  • 新建中文内容变成 ???

检查 PostgreSQL

SHOW client_encoding;
SHOW server_encoding;

应为:

UTF8

如果不是,需要重建数据库或修正编码(较重操作,建议备份)。


四、浏览器问题(容易被忽略)

现象

  • 只有某个浏览器乱码
  • 页面头部显示正常,内容乱码

解决

  • 强制浏览器编码为 UTF-8
  • 清除缓存
  • 确认 GitLab 返回头:
Content-Type: text/html; charset=utf-8

五、Docker / 容器环境乱码

原因

容器默认 LANG=C

解决

运行容器时加:

-e LANG=en_US.UTF-8 \
-e LC_ALL=en_US.UTF-8

GitLab 官方镜像也适用。


六、时间/文件名乱码(Windows 提交)

  • Windows 默认 GBK
  • Linux GitLab 是 UTF-8

✅ 解决:在 Windows 端设置 Git:

git config --global core.quotepath false

快速自检清单 ✅

  • [ ] locale 是 UTF-8
  • [ ] Git 配置 UTF-8
  • [ ] 浏览器 UTF-8
  • [ ] 数据库 UTF-8
  • [ ] 容器有 LANG

如果你愿意,可以告诉我:

  1. 乱码出现在哪(网页 / 日志 / 终端 / 提交记录)
  2. GitLab 安装方式(Omnibus / Docker / 源码)
  3. Linux 发行版

我可以直接给你精确命令。

0 踩