Centos/fedora/openEuler 终端中文显示配置

注意:这里主要解决的是图形界面、远程登录界面的中文乱码问题
系统原生的终端(如虚拟机系统显示的终端),由于使用的是十分原始的 TTY 终端,使用点阵字体进行显示,点阵字体不支持中文,因此无法显示中文
关于此问题的讨论见倒数第 3 章【One more thing】

0. 一些好看的字体

https://www.thosefree.com/design/fonts

  1. 黑体:鸿蒙字体 HarmonyOS Sans SC、OPPO Sans、MI Sans
  2. 宋体:思源宋体
  3. 楷体:霞鹜文楷
  4. 趣味体:得意黑
  5. 标题黑体:金山云技术体、庞门正道标题体
  6. 通用字体(非官方,中文+等宽英文的组合):微软雅黑Mono、微软雅黑-JBMono

1. 字体配置:解决显示乱码问题

总体思路:
  1. Linux 系统侧:正确安装好中文字体
    1. 确认是否有字体库 --> 没有则【安装字体库】
    2. 确认是否有中文字体 --> 没有则【安装中文字体】,有以下两种安装方法:
      1. 可通过【软件包安装】部分官方中文字体
        分析:简单,只需要会安装软件包即可;但只能安装几种官方字体
      2. 也可手动将中文字体文件【手动添加到字体库】中
        分析:操作比较复杂,要改配置;但可安装任意类型的字体
    3. 确认当前【系统语言格式为中文格式】
    4. (若要保证系统原生终端正常显示英文) 修改当前【系统语言为英文】
  2. 远程软件侧:正确配置,保证中文能正常显示

参考文档:

Linux 系统侧 – a 到 b 步骤:

  1. https://zhuanlan.zhihu.com/p/338919711
  2. https://www.cnblogs.com/xiaoniandexigua/p/17896240.html

Linux 系统侧 – d 步骤:

  1. https://man.archlinux.org/man/locale.conf.5.zh_CN

1.1 确认是否有字体库

fc-list
  • 若提示“命令无效、未找到命令”等,则说明:没有字体库 --> 需要【安装字体库】
  • 若有输出,则说明:有字体库 --> 请看【是否有中文字体】
    正常输出类似这种:会输出当前识别到的所有字体的列表

1.2 确认是否有中文字体

fc-list :lang=zh-cn
  • 查到有文字列表:说明有中文字体,列出的字体就是中文字体 --> 请看【确认当前系统显示的语言为中文】
  • 查询没报错但没有输出:说明没有中文字体 --> 需要【安装中文字体】
    以下是示例,查询的是日文的字体,显示如果【没有输出】是啥样的
  • 查询报错:字体库没有安装成功,参考【Linux 系统 a-b 步骤】的参考文档,重新安装

1.3 安装中文字体

1.3.1 安装中文字体软件包

这里安装【文泉驿正黑】字体,这是一款免费、开源、可免费商用字体
字体介绍:http://wenq.org/wqy2/index.cgi

安装命令

sudo dnf install -y fonts-wqy-zenhei

安装后刷新字体库

fc-cache -f -v

重新检查是否有安装的字体

fc-list :lang=zh-cn

以下字体是新安装的字体

1.3.2 字体库手动添加字体

参考文档:https://www.cnblogs.com/xiaoniandexigua/p/17896240.html

1.4 确认当前系统支持显示中文(编码类型为 UTF-8)

输入以下指令,确定当前语言相关的配置(系统环境变量)
locale

要求LANG=zh_CN.UTF-8

其中 zh_CN = 当前设置的地区,日期货币等显示格式以此为准,UTF-8 = 采用的编码格式,要为 UTF-8

  • 若是,则说明系统已经支持中文环境 --> 请看【远程终端软件的配置】
  • 若不是 --> 需要【修改系统语言环境为中文环境】

2. 修改系统语言环境为中文环境

  1. 打开配置文件:/root/.bashrc

  2. 在配置文件中添加相关配置(设置环境变量 LANG 的值为 zh_CN.UTF-8)

    # 将这一行添加到文件的新一行
    export LANG="zh_CN.UTF-8"
    
  3. 保存配置文件

  4. 使配置文件生效

    source /root/.bashrc
    
  5. 重开一个新的命令行窗口,检查设置是否生效

    locale
    

    查看LANG的值是否正确

    完成以上设置后,远程打开一个中文文件,其中的中文应该能正常显示了

3. One more thing

完成上面的步骤后,远程登录显示的文字无问题了,但有可能使用本地终端打开时,都是方块字了

究其根本原因:本地原生终端(runlevel ≤ 3 级别)为非常原始的 TTY 终端,使用的字体是点阵字体,这种点阵字体最多只支持 512 种字符,不支持 UTF-8 编码的中文内容

而上面的修改,有可能会把系统显示的语言也改成中文,导致系统报错、帮助、输出都带中文,原生终端都无法显示

解决方案:

  1. 显示的语言为英文,但支持中文
    可以理解为如同在华外国人,使用的电脑支持装中文软件、看中文文档,但系统显示的还是英文
    好处:日常系统级操作输出是英文,能正常显示;远程连接打开中文文档由于环境支持也能正常显示
    坏处:只解决了部分问题,若在本地打开中文文档,中文仍无法显示
  2. 换字体,即使是残缺的中文也比一个都显示不出来好(?)
    参考这个项目:https://github.com/oldherl/syllazh
  3. 使用一些魔法程序包(程序员的力量是无限的😎)如zhcon。项目地址:https://zhcon.sourceforge.net/

下面介绍一下第一种方法,其他方法由于对系统破坏性较大,不建议使用,请自行尝试

4. (保证本地终端兼容性)设置当前系统语言为英文

参考文章:https://man.archlinux.org/man/locale.conf.5.zh_CN

如果要保证系统原生的终端也能正常显示,则必须使用英文为语言
否则会出现以下情况:远程界面中的中文正常显示,但系统原生的终端界面显示的中文就是方块

为兼容两方面的需求,可设置为:中文语言格式(如显示格式、区域、按键布局)、但显示(如报错提示等)用英文

使用localectl命令来实现

localectl set-locale LANG="zh_CN.UTF-8" LC_MESSAGES="en_US.UTF-8"
  • LANG=指定语言格式(如果不同时设置其他的参数,则会自动设置对应的显示语言、键位等参数
  • LC_MESSAGES=指定系统输出语言格式,相当于指定系统的显示语言

修改后查看localectl状态

修改后需要重启服务器才能生效

可看到,在系统原生的终端界面中,系统显示语言为英文,日常操作输出的都是英文,日常系统级操作OK

但实际上这种方法只能供应急使用,若在原生终端中打开中文显示字符依旧会是方框

总结:要想显示中文,还是得远程登录(如用 MobaXterm、secureRT 等工具远程登录),本地的终端只能显示英文

5. 远程终端软件的配置

MobaXterm 参考我的另一篇笔记:MobaXterm基本使用 – 服务器状态、批量操作、字体设置、修复zsh按键失灵

<think>好的,用户想知道如何将终端显示的内容翻译成中文,也就是配置终端中文显示输出内容。我需要结合提供的引用资料来给出准确的步骤。 首先,引用[4]提到可以通过设置LANG环境变量来改变终端的语言。临时生效的方法是使用export命令,比如export LANG="zh_CN.UTF-8"来设为中文,或者用en_US.UTF-8设为英文。用户需要中文,所以应该建议设置成zh_CN.UTF-8。不过引用[1]提到,修改系统语言可能会导致系统报错或帮助信息变成中文,甚至影响原生终端显示。这可能是个问题,用户可能不希望整个系统语言都改变,只是终端的输出。 然后引用[2]是关于如何将命令输出切换为英语,但用户的需求相反,是要切换成中文。所以可能需要检查系统是否安装了中文语言包。如果系统没有安装相应的语言支持,设置LANG可能不会生效,甚至出现乱码,如引用[4]提到的乱码问题。 接下来,临时设置和永久设置的方法都需要说明。临时方法用export,永久的话可以编辑/etc/profile或者用户的家目录下的.bashrc或.profile文件,添加export LANG="zh_CN.UTF-8"。但需要注意,如果系统本身没有配置中文环境,可能需要先安装语言包,比如通过sudo dnf install langpacks-zh_CN或者sudo apt install language-pack-zh-hans等命令,具体取决于发行版。 另外,引用[4]还提到编辑/etc/sysconfig/i18n文件,但不同发行版可能配置文件的位置不同,比如CentOS和Ubuntu的路径可能不一样,需要区分说明。比如在Debian/Ubuntu系统下,可能需要编辑/etc/default/locale,而CentOS可能使用/etc/locale.conf。 还有可能出现的问题,比如设置后终端仍然显示乱码,这时候需要确保终端本身的编码支持UTF-8,并且安装了中文字体。如果用户使用的是图形界面终端,可能需要调整终端的设置,选择支持中文字体。 总结步骤应该是: 1. 检查并安装中文语言包。 2. 临时设置LANG变量。 3. 永久修改配置文件。 4. 处理可能的乱码问题,如终端编码和字体设置。 5. 提醒用户注意系统可能出现的其他中文显示问题,如引用[1]所述的系统报错信息变成中文的情况。 此外,是否需要重启或重新登录来使配置生效,这也是需要注意的地方。比如,修改/etc/profile后需要重新载入或者重启终端,甚至重启系统。 可能用户还会遇到某些命令的输出没有被翻译的情况,这可能是因为某些软件包没有对应的中文翻译,或者翻译不完整。这时候可能需要额外安装对应的语言包,比如man-pages-zh等。 最后,生成相关问题时要围绕终端本地化、乱码解决、语言包安装等方向来设计。</think>### 终端本地化中文显示配置指南 #### 一、核心配置方法 1. **临时设置(仅当前会话生效)** 终端中直接执行: ```bash export LANG="zh_CN.UTF-8" # 强制设置为简体中文环境 export LC_ALL="zh_CN.UTF-8" # 覆盖所有本地化设置 ``` 此方法适用于临时测试中文显示,重启终端后恢复原设置[^4]。 2. **永久设置(系统级配置)** - **CentOS/RHEL/openEuler** 编辑文件 `/etc/locale.conf`: ```bash LANG="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" # 控制命令输出的语言 ``` - **Debian/Ubuntu** 编辑文件 `/etc/default/locale`: ```bash LANG="zh_CN.UTF-8" LC_ALL="zh_CN.UTF-8" ``` 修改后需重启系统或执行 `source /etc/profile` 重新加载配置[^1]。 --- #### 二、必要支持组件安装 若设置后仍显示乱码或未生效,需检查并安装中文语言包: - **Fedora/CentOS**: ```bash sudo dnf install langpacks-zh_CN glibc-langpack-zh ``` - **Debian/Ubuntu**: ```bash sudo apt install language-pack-zh-hans manpages-zh # 包含基础翻译和中文手册 ``` --- #### 三、常见问题处理 1. **终端乱码** 确保终端编码设置为UTF-8: ```bash echo $LANG # 验证当前编码 ``` 若输出非 `zh_CN.UTF-8`,检查配置文件语法或重新安装语言包。 2. **系统级中文副作用** 若需保留系统错误信息为英文,可单独设置 `LC_MESSAGES`: ```bash export LC_MESSAGES="en_US.UTF-8" # 错误信息保持英文 export LANG="zh_CN.UTF-8" # 其他内容显示中文 ``` 此配置可写入 `~/.bashrc` 实现持久化[^2]。 --- #### 四、进阶工具 - **终端内翻译工具** 使用 `translate-shell` 实时翻译命令输出: ```bash curl example.com | trans :zh # 将英文内容翻译为中文 ``` - **图像显示支持** 通过 `terminal-image` 工具在终端显示中文图形界面: ```bash git clone https://gitcode.com/gh_mirrors/te/terminal-image cd terminal-image && make install # 编译安装 ``` 具体用法参考项目文档[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值