温馨提示×

ubuntu jellyfin为何乱码

小樊
54
2026-10-22 14:52:45
栏目: 智能运维

在 Ubuntu 上运行 Jellyfin 出现乱码,通常不是 Jellyfin 本身的问题,而是系统字体缺失或语言环境(locale)配置不正确导致的。下面按常见原因逐一说明和解决。


一、最常见原因:系统缺少中文字体

Jellyfin 的 Web 界面或元数据(如中文电影名)显示乱码,多半是服务器系统没有中文字体。

解决方法(推荐)

sudo apt update
sudo apt install fonts-noto-cjk -y

安装完成后重启 Jellyfin:

sudo systemctl restart jellyfin

✅ 如果是 Docker 运行,需要在宿主机或容器内部都安装字体。

Docker 容器内可这样操作:

docker exec -it jellyfin bash
apt update && apt install fonts-noto-cjk -y

二、系统语言环境(locale)未设置好

如果 Ubuntu 的 locale 不是 UTF-8,Jellyfin 可能解析中文出错。

检查当前 locale

locale

如果看到:

LANG=
LC_ALL=

或不是 UTF-8,就需要设置。

设置中文 UTF-8(示例)

sudo apt install locales
sudo locale-gen zh_CN.UTF-8
sudo update-locale LANG=zh_CN.UTF-8

重启系统或 Jellyfin:

sudo reboot

三、浏览器或客户端问题

有时不是服务器问题,而是:

  • 浏览器编码被强行改了
  • 使用旧版 Jellyfin 客户端

建议

  • 使用 Chrome / Edge 最新版
  • 清除浏览器缓存
  • 不要手动改编码(保持 UTF-8)

四、媒体文件本身编码问题

如果是字幕乱码(不是界面乱码):

  • 常见是 .srt 字幕用了 GBK 编码
  • Jellyfin 默认按 UTF-8 读取

解决方法

将字幕转为 UTF-8:

iconv -f GBK -t UTF-8 input.srt -o output.srt

或使用工具(如 Subtitle Edit)。


五、Docker 特别说明(很重要)

很多人是在 Docker 里跑 Jellyfin,宿主机有中文,但容器里没有。

✅ 正确做法:

  • 宿主机装字体
  • 或在 docker-compose.yml 中挂载字体目录
volumes:
  - /usr/share/fonts:/usr/share/fonts:ro

六、快速自查清单 ✅

  • [ ] Ubuntu 已安装中文字体
  • [ ] locale 是 UTF-8
  • [ ] Jellyfin 已重启
  • [ ] 浏览器是最新版
  • [ ] 字幕是 UTF-8
  • [ ] Docker 容器内有字体

如果你愿意,可以把:

  • 乱码截图
  • Jellyfin 运行方式(原生 / Docker)
  • Ubuntu 版本

发给我,我可以更精准帮你定位。

0 踩