大家今天跟大家伙儿聊聊我在捣鼓电脑时遇到的一个小插曲——“ls乱码都不乱码”,听着挺绕口?别急,我慢慢给你们捋捋。
那天,我正儿八经地坐在电脑前,想看看我的 Linux 系统里都有啥宝贝文件。我就习惯性地敲个 ls 命令,这一敲不要紧,出来的东西把我给看傻——一堆奇奇怪怪的符号,跟天书似的,这可把我给整懵。这啥情况?我心想平时也没少用 ls ,咋今天就翻车?
遇到问题就喜欢刨根问底。于是我就开始琢磨,这乱码到底是咋回事?我先是在命令行终端上反复敲 ls,发现每次出来的东西都不一样,而且那些字符还带着颜色。这让我灵光一闪,会不会是这颜色信息在捣鬼?
我就想到编码这回事。咱们平时用的编码格式五花八门的,有啥 ASCII、UTF-8,要是编码对不上,那可不就乱套嘛于是我就试着输个 export LC_ALL=*-8,想把编码统一成 UTF-8 试试。你猜怎么着?还真管用!这下 ls 出来的东西总算能看,虽然还有些小瑕疵,但至少不是天书。
不过问题还没彻底解决。我又发现,有些文件的名字还是乱码。这又是咋回事?我想想,会不会是系统语言的问题?于是我就敲个 echo $LANG 看看当前的系统语言是一看,果然,系统语言是英文的。那咋办?得整个中文语言包!我又敲个 locale 命令,看看有没有中文语言包。还真没有!这下可把我给难住。
我这个人,不服输,我就不信这个邪。于是我就开始鼓捣环境变量。我打开 /etc/sysconfig/i18n 这个文件,把里面的 LANG 和 LANGUAGE 都改成 zh_*18030,顺便还加个 zh_*2312。改完之后保存,退出,重启!
这一通操作下来,你们猜怎么着?哈哈,ls 命令终于正常!那些文件名再也不是奇奇怪怪的符号,而是清清爽爽的中文。看到这一幕,我心里那个美,别提多高兴!
这回的经历让我明白一个道理:遇到问题别慌,一步一步来,总能找到解决办法的。多试试不同的方法,说不定哪个就管用!
- 我用ls命令,发现输出乱码。
- 然后,我怀疑是颜色信息导致,并在命令行终端做对比。
- 我通过export LC_ALL=*-8命令尝试统一字符编码为UTF-8。
- 之后,我用echo $LANG查看当前系统语言,发现是英文。
- 紧我用locale命令检查是否有中文语言包,发现没有。
- 我修改/etc/sysconfig/i18n文件中的环境变量,设置中文编码,重启后问题解决。
好,今天的分享就到这里。希望我的这回经历能给大家带来一些启发。记住,电脑这玩意儿,有时候就是爱跟你开玩笑,但只要你肯动脑筋,啥问题都能搞定!