现象
安装 kubuntu 20.04 系统以及搜狗输入法后, 发现 kconsole 以及 deepin-terminal 均无法正确地输入和显示中文
解决
kubuntu 20.04 出厂配置没有使用中文字符集, 导致中文显示乱码
查看本地(即 local)相关的环境变量
$ locale
LANG=C
LANGUAGE=
LC_CTYPE="C"
LC_NUMERIC=zh_CN.UTF-8
LC_TIME=zh_CN.UTF-8
LC_COLLATE="C"
LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES="C"
LC_PAPER=zh_CN.UTF-8
LC_NAME=zh_CN.UTF-8
LC_ADDRESS=zh_CN.UTF-8
LC_TELEPHONE=zh_CN.UTF-8
LC_MEASUREMENT=zh_CN.UTF-8
LC_IDENTIFICATION=zh_CN.UTF-8
LC_ALL=
设置正确的中文环境:
- 纯中文的系统
设置环境变量 LC_ALL=zh_CN.UTF-8
, 其他以 LC 开头的环境变量都被设置为 zh_CN.UTF-8
- 可以输入中文, 但系统的菜单和标题等系统信息显示为英文
仅需设置系统的字符集 LC_CTYPE=zh_CN.UTF-8
只需要在 ~/.profile
或 ~/.bashrc
中加入 export LC_CTYPE="zh_CN.utf8"
, 重启后便可正常输入中文
当然以下内容也可以单独设置:
- 数字格式
LC_NUMERIC
- 时间显示格式
LC_TIME
- 货币单位
LC_MONETARY
- 度量单位
LC_MEASUREMENT
不过这些可以在系统设置界面找到
另外, LANG
和 LC_ALL
作用类似, 设置其他 LC 开头变量的默认值 ,但优先级较低, 可被 LC_ALL
覆盖
优先级: LC_ALL
> LC_*
> LANG
LANG - Specifies the default locale for all unset locale variables
LANGUAGE - Most programs use this for the language of its interface
查看所有的可选值
$ locale -a
C
C.UTF-8
POSIX
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL
en_IL.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
zh_CN.utf8