说起来这MobaXterm的乱码问题,真是把我折腾得够呛,以前用其他工具,顶多就是偶尔跳出来个方块字,大不了换个字体就完事了。可MobaXterm这玩意儿,一开始用的时候,那真是给我上了一课。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.icu
刚开始那阵子,我远程连上服务器,一打开那些脚本文件,或者看个日志啥的,屏幕上就跟撒了一堆豆子似的,全是奇奇怪怪的符号,什么问号,乱七八糟的字符,看得我眼睛都花了。我心里那个烦,想着这玩意儿怎么就不省心?
那时候我可没少瞎折腾。想到的就是字体问题,心想是不是我本地的字体库有问题?于是我跑到MobaXterm的设置里,找到那个“Terminal settings”,把字体挨个儿换了一遍,什么Consolas,Source Code Pro,甚至连宋体都试了试,结果?屁用没有!该乱码还是乱码,一点儿好转都没有。
我又开始怀疑是不是字符集没设对。这个我在别的软件里也遇到过,所以赶紧去翻MobaXterm的“Session settings”。我特意看了看每个会话的设置,找到了“Terminal”选项卡下面的“Character set”。我一看,默认是UTF-8,心里嘀咕,这没问题,UTF-8是最通用的了。但架不住它还是乱码,我就开始犯嘀咕,是不是服务器那边的字符集不是UTF-8?
我当时就尝试着把MobaXterm的字符集改成了GBK,然后又换成ISO-8859-1,甚至一些我根本没听过的字符集都点了一遍,每次改完都重新连上去试,希望能蒙对一个。结果当然是,要不就是乱得更彻底,要不就是压根没变化。那几天,我真是被这些个字符集弄得头大如斗,感觉自己就像个傻子,对着一堆天书瞎忙活。
有一次,我实在是火大了,想着干脆把MobaXterm卸载了算了。但是又一想,这软件功能确实挺多,用起来方便,就这么放弃了不甘心。于是我强忍着脾气,又回到那个“Session settings”里,又一次点开了“Terminal”选项卡。这回我不是瞎改了,我开始仔细回忆平时在Linux系统下处理中文显示的时候,一般都怎么弄。
我突然想到,很多时候Linux系统本身的locale设置也会影响显示。我赶紧远程登录到服务器,输入了locale命令,一敲回车,我看到服务器的LANG变量是en_*-8。这下我心里有底了,服务器确实也是UTF-8,那问题肯定还是出在我MobaXterm的设置上。
我又回到了MobaXterm,这回我没在“Session settings”里折腾了,而是跑到了全局设置里,就是那个“Settings”菜单,然后找到“Configuration”,再找到“Terminal”。我心想会话设置可能只是局部生效,是不是全局设置给搞乱了?
在这里面,我发现了一个叫“Default terminal character set”的选项,它默认也是UTF-8。但旁边还有一个“Force UTF-8”的勾选项。我当时就想,这玩意儿有什么用?抱着死马当活马医的心态,我把它给勾上了。然后保存,退出,再重新启动MobaXterm。
奇迹就在那一刻发生了!我随便连上一个服务器,打开之前那些乱码的文件,你猜怎么着?那些奇奇怪怪的符号,那些问号,全都没了!取而代之的是规规矩矩的中文,每个字都清清楚楚地显示在那里,一点乱码都没有。我当时高兴得差点跳起来,就觉得这小小的勾选,竟然解决了困扰我这么久的大问题。
除了这个“Force UTF-8”的选项,我还顺手把“ANSI code support”也勾上了,虽然不知道有没有直接关系,但多一份保险总没错。后来我又发现,如果只是局部会话有乱码,也可以在会话连接后,右键点击终端区域,选择“Terminal settings”,然后在弹出的窗口里,把“Character set”选回“UTF-8”,并且勾选“Force UTF-8 on this session”,效果也是一样的。
总结起来就是,MobaXterm这玩意儿,有时候默认设置可能不够“暴力”,虽然显示是UTF-8,但内部可能还是有点小别扭。强制一下,它就听话了。经过这一次折腾,我才明白,有些时候解决问题,不是靠多高深的知识,而是靠那股子不放弃的劲儿,以及一点点的耐心和尝试。就是喜欢把这些自己踩过的坑,解决过的问题,都记录下来,分享出来,说不定就能帮到哪个跟我当初一样,被乱码搞得焦头烂额的朋友。毕竟谁还没点儿被技术问题逼疯的经历?