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"

You may also like...

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注