Win 10 + SecureCRT 6.2 中文乱码问题
问题描述
近年来接触了很多的开源工作,也使用了很多的开源软件或者开源代码,然后想着支持开源产品/free 产品,能使用 free 或者免费产品的就别去使用商业破解版,也是对别人劳动成果的尊重。然而,在使用了xShell Community 版一段时间后,还是有一些习惯始终不能达到我的理想状态。
于是,我又相关回归之前使用了很多年的 SecureCRT 继续使用盗版(…),我掏出了珍藏多年的 SecureCRT 6.2.0 版本的绿色破解中文版(好像还被 Symantec 查出了病毒…),软件的响应速度,自动连接,会话管理等等小细节都让我熟悉又美好。
然而,当我开始使用时,却遇到了一个简单却又烦人的问题,中文乱码。我记得以前我在使用 CRT 的时候,还是 Win 7 时代。当时我解决中文乱码我记得就两个地方设置,一是服务器端的 LANG 语言字符集设置,另一个是 CRT 会话设置里的外观下的字符编码设置。以前这两个地方一设置,可以说是药到病除。
可是今天却出现了怪异的情况,上面说到的两个地方我都设置了之后,中文乱码问题还是存在。于是我想是不是我的操作系统 Win 10 的原因(这点我不敢肯定),于是一番折腾后,发现还有字体支持的字符集的设置。我不记得是不是 Win 7 是不是也有这个设置,如果有类似情况的小伙伴,可以参考如下记录的解决方案。
一、操作环境
Windows 10
SecureCRT 6.2.0
二、服务器端字符集
1 查看字符集
可以执行如下命令查看服务器字符集
[root@lab1 ~]# locale
如下示例:
注:
- 一般来说,locale 是 LANG=C 或者 LANG=en_US 是不支持中文的,如果将中文写入文件,会得到乱码。而只要 locale 中支持 UTF-8 就支持中文,比如,en_US.UTF-8 与 zh_CN.UTF-8 都支持中文。但 en_US.UTF-8 表示的是语言环境是英文,所在地区是美国,而 zh_CN.UTF-8 语言环境是中文,所在地区是中国。二者均支持中文,只是会影响某些软件的语言显示,比如系统菜单,或者是 Oracle 11g 的界面安装(当年使用界面安装时在这儿踩过多次坑,其他版本没用过…)。
可以按照下方的操作设置 locale 为 zh_CN.UTF-8 。
2 设置环境变量
root 用户执行如下命令设置环境变量
vi /etc/profile
在文件末尾添加如下内容,保存退出:
##### character set #####
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
如下示例:
root 用户执行如下命令使配置生效
source /etc/profile
配置后效果如下:
三、SecureCRT 会话字符集
菜单栏 -> 选项 -> 会话选项 -> 终端 -> 外观 -> 字符编码
将 Default 改为 UTF-8
四、SecureCRT 字体
由于有些字体并不支持中文字符集,因此,也可能导致出现乱码。
菜单栏 -> 选项 -> 会话选项 -> 终端 -> 外观 -> 字体 -> 标准字体 -> 字体
从字体选择的右下方可以看到,有些字体的字符集里并不支持 中文 GB2312,而是默认西欧语言。因此,这也是导致出现乱码的原因。
可以设置一种支持 "中文 GB2312" 字符集的字体,如 "YaHei Consolas Hybrid" -> 选择 "中文 GB2312" 字符集,即可解决中文乱码的问题,如下所示:
附录一:预设会话设置
如果设置了 全局设置 -> 常规 -> 预设的会话设置 -> 编辑预设的设置。请将其中的字符集与字体也都设置为 UTF-8 和 支持 "中文 GB2312"
近期评论