You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux虚拟终端显示Unicode字符问题求助

解决Ubuntu虚拟终端无法显示Unicode字符'घ'的问题

你说得没错,这个问题确实是虚拟终端(TTY)使用的控制台字体不支持Devanagari(天城文)字符导致的——毕竟X终端用的是系统里的标准TrueType/OpenType字体,而TTY依赖专门的.psf格式控制台字体,默认配置里往往没包含这类非拉丁字符集的支持。下面是具体的解决步骤:

1. 安装必要的字体和配置工具

首先在能正常显示字符的X终端里执行命令,安装支持天城文的控制台字体包和配置工具:

sudo apt update && sudo apt install console-setup fonts-indic

2. 临时测试可用字体(快速验证)

不用繁琐配置,先直接指定一个支持多语言Unicode的控制台字体测试效果:

sudo setfont /usr/share/consolefonts/Uni2-Terminus16.psf.gz

执行完后切换到TTY(Ctrl+Alt+F2),打开你的abc.txt文件,看看'घ'能不能正常显示。如果这个字体路径不存在,你可以用ls /usr/share/consolefonts/ | grep Uni2找类似的可用字体文件。

3. 永久配置控制台字体

如果临时测试有效,接下来把设置永久化:

  • 运行配置向导:

    sudo dpkg-reconfigure console-setup
    

    跟着向导一步步选:

    • 字符编码选UTF-8
    • 字符集选择Devanagari(或者选"All"来支持更多语言)
    • 字体选刚才测试有效的(比如Terminus系列),字号根据你的屏幕大小选合适的(比如16)
  • 或者直接编辑配置文件/etc/default/console-setup,手动指定字体:

    sudo nano /etc/default/console-setup
    

    修改成类似这样的内容:

    FONTFACE="Terminus"
    FONTSIZE="16"
    # 或者直接指定字体文件路径
    # FONT="/usr/share/consolefonts/Uni2-Terminus16.psf.gz"
    

    保存后执行sudo setupcon让配置立即生效,不用重启。

4. 确认系统Locale是UTF-8

最后确保你的系统Locale是UTF-8编码(这一步大部分Ubuntu默认已经配置,但还是检查下更稳妥):

locale

如果输出里的LANG和LC_*不是en_US.UTF-8或其他UTF-8格式的Locale,执行下面的命令重新配置:

sudo dpkg-reconfigure locales

选择一个UTF-8的Locale作为默认即可。

这样设置后,你的TTY应该就能正常显示'घ'这个字符了——本质上就是给TTY换上了支持天城文的控制台字体,和X终端用的字体体系不一样,所以才会出现两边显示效果不同的情况。

内容的提问来源于stack exchange,提问作者Syed.Waris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:22:08