飘在云端

东西南北,海角天涯

· 备查随笔 · · 242次浏览

xshell中文字体显示不全少偏旁(非乱码/横着)原因

首先xshell终端的编码已经是utf8了,也不是使用了@格式开头的字体,然后看看系统环境的语言编码是什么

echo $LANG

我这里显示zh_CN,但实际上我并没有安装相关的简体中文语言包!结果缺少实际语言字体支持,导致显示异常,比如ll / ls -l显示的日期异常(不全/乱码),再如:用vim修改一些配置文件输入中文注释,中文的字体正常显示,但是你会发现中文字体的异常字符间距,各种多余的几个空格穿插在每个中文里面。
而这个zh_CN是我之前配置环境变量时定义了(当时在配置某个软件包还是编译什么项目时定义的)
我在 /etc/profile 中不慎手贱去定义了本地语言环境的变量 export LC_ALL=zh_CN,各种谷歌百度,然后百度搜索质量堪忧+搜索相关性等于zz,搞了一个多小时没搞定。
才忽然想起了之前几天改过系统语言环境,排查出罪魁祸首。
解决办法很简单:直接从 /etc/profile 删掉这个语言环境变量,当然如果在其他文件定义了语言环境变量就删别处,或者把它改成 export LC_ALL=en_US ,然后 source /etc/profile 立刻生效。

vim如果中文输入+打开中文内容乱码,修改vim全局配置文件 /etc/vimrc,文件末尾追加如下内容,并保存

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

如果使用xshell的话,确保会话属性的终端类型为 xterm,同时 xshell 会话属性 → 终端 → 编码 为 UTF-8

评论 (0条)