之前因为自己制作了一个虚拟机,为了接轨pc机模式所以下了中文语言包,使用的一直也没什么问题,直到昨天打开虚拟机发现突然中文变成了一个个小方格,如下所示:
分析:
一时间无法直接操作了,但是在经过一番折腾后,我发现有两个特点: 1.在虚拟机中无法显示的中文(即小方格),选中复制到pc机上后可以正常显示中文; 2.我使用FileZilla以及mobaxterm连接到虚拟机上的linux系统,依旧可以正常显示中文。 以上述两点进行突破,查询得知:1.当中文的显示为乱码时,表明编码方式错误(编码方式有如GBK,UTF-8,Unicode码等),通俗来说就是GBK编码的放到utf-8编码格式来查看肯定会显示错误。2.当中文字符统一显示小方格时,表明发生了字体显示错误。 鉴于我之前中文都可以显示,那么也不可能会是突然的系统编码错误,所以只会是系统字体包产生了一些问题。
解决:
知道了原因,那便查询问题的解决方式,查阅资料得知:可以选择需要重新下载字体包(或者从pc机上拷贝),也可以选择从镜像iso中的字体包重启。 重新下载字体包的语言命令在csdn上有许多,都是通过yum命令来下载,安装包各有各的说法。我都试了一遍,没用,好吧只能另寻方案了。 那我想着之前的安装镜像还在,看看能不能找到字体安装包,但是这也比较麻烦,因为镜像不是自己做的,字体安装包的位置始终没有查询到(思路就是想先找到带fonts的),这个方案也失败了。
我自己的办法:
网上搜寻的方案都不太适合,但是我想如果是字体的原因,那么我直接换成英文的即可;于是我凭借着以前的一些记忆位置,找到了系统自带语言的安装包下载,顺利切换成了英文: 在系统中修改成功了语言包,相比小方格那样的算是好多了: 如果系统中无法修改,那么还是下载英文字体:
sudo apt update
sudo apt -y install font-manager
再回过头来强调一下:如果编码错误改变编码,如果字体错误改字体(也可以选择第三方连接,照常显示)
问题是一个小问题,但是解决起来也比较麻烦,我试了许多的方法,但是对我的系统来说都不大行,这个方案比较全面,所以我还是贴出来供人们一个参考:
1、如果你需要一个纯中文的系统的话,设定LC_ALL= zh_CN.XXXX,或者LANG= zh_CN.XXXX都可以,当然你可以两个都设定,但正如上面所讲,LC_ALL的值将覆盖所有其他的locale设定,不要作无用功。 2、如果你只想要一个可以输入中文的环境,而保持菜单、标题,系统信息等等为英文界面,那么只需要设定 LC_CTYPE=zh_CN.XXXX,LANG=en_US.XXXX就可以了。这样LC_CTYPE=zh_CN.XXXX,而 LC_COLLATE=LC_MESSAGES=……= LC_PAPER=LANG=en_US.XXXX。 3、假如你高兴的话,可以把12个LC_*一一设定成你需要的值,打造一个古灵精怪的系统: LC_CTYPE=zh_CN.GBK/GBK(使用中文编码内码GBK字符集); LC_NUMERIC=en_GB.ISO-8859-1(使用大不列颠的数字系统) LC_MEASUREMEN=de_DE@euro.ISO-8859-15(德国的度量衡使用ISO-8859-15字符集) 罗马的地址书写方式,美国的纸张设定……。估计没人这么干吧。 4、假如你什么也不做的话,也就是LC_ALL,LANG和LC_*均不指定特定值的话,系统将采用POSIX作为lcoale,也就是C locale。 http://apps.hi.baidu.com/share/detail/17181078
补充
因为上述方案只是将系统的中文包改成了英文包,实际的上网中文还是会显示小方格(虽然我只是拿linux来学习,但终归还是觉得别扭);于是我想接着从系统中更新下载中文包,结果在下载的过程中会一直报错“Failed to download package files Check your Internet connection.”。开始我还以为是我的网络又出现了问题,在我不停重复联网后,确认不是网络问题。在网上搜寻,发现只要修改下载源即可: 按Alt+ F2并输入software-properties-gtk 接着设置成国内的就近服务器即可: 后续就能正常下载,网页上的中文也可以正常显示了:
最后
至于为什么会出现这样的情况,我认为是Ubuntu18版部分功能停止服务,升级一下也许就可以。 个人思路仅提供参考!
|