解决 ArchLinux 下中文 Chinese 不能输入 couldnt input 的问题
一、Question
一年多的 ArchLinux 用户再次回归。然鹅,见面礼就是终端不能输入中文。
在写这篇文章前,我通过各种搜索都没有得到我遇到的问题解决方案。
我遇到的问题是:Bash 终端可以输入中文,然而 Zsh 输入中文会出现问好。
二、Resolutions
通过查询系统支持已获得当前状态,修改 /etc/locale.gen
更新需要的语言包,使用 localectl set-locale
辅助终端语言设置。
三、Diagnostic
1- 检测系统环境变量
# locale
LANG=C
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
2- 检查系统支持语言
# localectl list-locales
# locale -a
C
POSIX
确定问题,系统不支持中文。
四、Solve Problem
1- 开启语言支持
# cat /etc/locale.gen | grep -v "^#"
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_HK.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8
2- 更新语言支持
$ sudo locale-gen
[sudo] password for rabbit:
Generating locales...
en_US.UTF-8... done
zh_CN.UTF-8... done
zh_HK.UTF-8... done
zh_TW.UTF-8... done
Generation complete.
3- 辅助语言设置
# localectl set-locale LC_CTYPE=en_US.UTF-8 LANG=en_US.UTF-8
# localectl status
System Locale: LANG=en_US.UTF-8
......已截断
# cat ~/.xprofile
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
# cat /etc/default/locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8:en_US.UTF-8:en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
五、References
- Wikipedora
- github
- archlinux
- blogs