---
url: https://eoht.net/vps/settings/chinese.md
description: >-
  介绍 Debian、Ubuntu 及使用相同 locales 工具的系统如何安装语言环境、生成
  zh_CN.UTF-8、设置默认语言并验证生效，区分区域设置错误、桌面字体缺失和 SSH 客户端显示问题。
---

# Debian/Ubuntu 中文环境设置：生成 UTF-8 locale 与排查乱码 {#configure-linux-chinese-locale}

本文适用于使用 APT 和 `locales` 的 Debian、Ubuntu 系统。中文区域设置控制程序语言、日期和数字格式；字体决定汉字能否显示。两者需要分别检查。

## 1. 安装区域设置工具 {#install-locales-package}

先查看当前环境，再安装所需工具：

```sh
locale
locale -a
sudo apt update
sudo apt install locales
```

`locale` 显示当前会话设置，`locale -a` 列出已生成的区域设置。如果命令出现 `Cannot set LC_*`，通常应先检查设置的名称是否已生成。

## 2. 生成并选择中文区域设置 {#configure-chinese-locale}

```sh
sudo dpkg-reconfigure locales
```

在列表中用空格键选中 **`zh_CN.UTF-8 UTF-8`**，保留已有应用需要的其他语言，然后确认生成。下一步选择 `zh_CN.UTF-8` 作为系统默认值。一般中文使用选择 UTF-8 即可，不必同时启用 GB2312、GBK 和 GB18030；只有明确依赖这些编码的旧程序才需要它们。

![locales =688x](https://i.eoht.net/docs/202406101154079.webp "区域设置选择界面，按实际需求选择 zh_CN.UTF-8")

![locales =688x](https://i.eoht.net/docs/202406101155372.webp "选择 zh_CN.UTF-8 作为默认区域设置")

也可以在生成完成后单独修改默认语言：

```sh
sudo update-locale LANG=zh_CN.UTF-8
```

`update-locale` 修改系统默认配置，不会替换已经运行的进程环境。通常不需要把 `LC_ALL` 永久写入配置；它会覆盖各个 `LC_*` 分类设置。[Debian 工具说明](https://manpages.debian.org/bookworm/locales/update-locale.8.en.html)

## 3. 重新登录并验证显示 {#reboot-system}

退出当前桌面或 SSH 会话后重新登录，再检查：

```sh
locale
locale -a | grep -i zh_cn
printf '中文显示测试\n'
```

确认 `LANG` 指向 `zh_CN.UTF-8`，已生成的列表包含对应条目；`locale -a` 可能将名称显示为 `zh_CN.utf8`。无需仅为这一设置强制重启服务器。若新会话仍使用旧语言，检查用户配置以及 SSH 客户端传入的 `LANG`、`LC_*` 是否覆盖系统默认值。

如果图形桌面显示方块，可先查询并安装发行版提供的中文字体，例如：

```sh
apt-cache policy fonts-noto-cjk
sudo apt install fonts-noto-cjk
```

重新打开对应应用后检查显示。若乱码出现在本地 SSH 终端，应调整**本地终端的 UTF-8 编码和中文字体**；给远程服务器安装桌面字体通常不会改变本地终端的渲染。纯文本控制台与图形终端也有不同的字体能力，不能仅凭方块字符判断 locale 设置失败。
