解决SecureCRT中文显示乱码

简介:

操作步骤

以下两步:

  1. 远程linux机器。修改环境变量LANG。例如在~/.bash_profile里面添加

    [plain] view plain copy
    1. export LANG=zh_CN.UTF8  


    重新登录之后生效。

    现在查看一下当前设置:
    [plain] view plain copy
    1. myname@myhost~> locale  

    2. LANG=zh_CN.UTF8  

    3. LC_CTYPE="zh_CN.UTF8"  

    4. LC_NUMERIC="zh_CN.UTF8"  

    5. LC_TIME="zh_CN.UTF8"  

    6. LC_COLLATE="zh_CN.UTF8"  

    7. LC_MONETARY="zh_CN.UTF8"  

    8. LC_MESSAGES="zh_CN.UTF8"  

    9. LC_PAPER="zh_CN.UTF8"  

    10. LC_NAME="zh_CN.UTF8"  

    11. LC_ADDRESS="zh_CN.UTF8"  

    12. LC_TELEPHONE="zh_CN.UTF8"  

    13. LC_MEASUREMENT="zh_CN.UTF8"  

    14. LC_IDENTIFICATION="zh_CN.UTF8"  

    15. LC_ALL=  

    16. myname@myhost~>  


  2. 本地windows机器。修改SecureCRT的设置。找到“选项”->“会话选项”->“外观”:
    *    字符编码设置为utf-8。
    *    字体设置,选择中文字体,例如新宋体。

设置完成。然后测试一下。

基本原理

首先,同一种语言,可以使用不同的编码。例如,中文windows的系统默认字符集是cp936,基本上等同gbk。参考 http://zh.wikipedia.org/wiki/GBK 。
例如有两个文件。文件名分别为“我的分析1.txt”和“我的分析2.txt”。但是文件名(不是文件内容)的编码格式不同。

“我的分析1.txt”的UTF-8编码为

[plain] view plain copy
  1. e68891 e79a84 e58886 e69e90 31 2e 74 78 74  

  2.  我       的     分      析  1  .  t  x  t  


  "我的分析2.txt"的gb2312(是gbk的一个真子集)编码格式为

[plain] view plain copy
  1. ced2 b5c4 b7d6 cef6 32 2e 74 78 74  

  2. 我    的    分   析   2  .  t  x  t  


第二,linux shell环境下,环境变量LANG决定了本地使用的字符集(通常情况,不考虑LC_ALL等)。包括文件名和文件内容的处理。例如,由于编码不同,运行ls命令时,上面的两个文件名不能同时正确显示。
在实际linux系统中,不应该如此灵活,而要固定一种文件名编码格式。例如,linux一般默认使用utf-8编码文件名。以下三种情况:
  1> LANG=zh_CN.UTF8,设置shell程序使用UTF8编码处理字符。因此,
    “我的分析1.txt”能够被正确处理,因为是UTF-8编码。
    “我的分析2.txt”是gb2312编码,显示为乱码。

  2> LANG=zh_CN.gb2312 或者 LANG=zh_CN.gb18030,那么
   “我的分析1.txt”显示为乱码。
   “我的分析2.txt”能够正确处理。

  3> LANG=en,那么ls查看,两个文件名都不能正常显示。

第三,SecureCRT客户端的编码设置要与远程linux的编码设置一致,才可以正确显示字符。


补充说明

  1. SecureCRT和远程linux同时都使用gb2312编码,也没有问题。在这种情况下,字符都按照gb2312进行处理。但是,笔者在自己的windows上利用网络邻居查看远端的linux samba server时,看到的gb2312中文文件名是乱码。而用UTF-8就没有问题。尽管通过设置samba能够解决,但还是建议统一用默认的UTF8格式,比较保险。

  2. VIM正确显示和输入中文的设置。编辑~/.vimrc,添加下面两行

    [plain] view plain copy
    1. let &termencoding=&encoding  

    2. set fileencodings=ucs-bom,utf-8,gbk  

    这样设置之后,utf-8和gb2312都能正确处理。









本文转自 小强测试帮 51CTO博客,原文链接:http://blog.51cto.com/xqtesting/1251140,如需转载请自行联系原作者
目录
相关文章
|
数据安全/隐私保护
xshell7,xftp7个人免费版官方下载,无需破解,免激活,下载即可使用
xshell7,xftp7个人免费版官方下载,无需破解,免激活,下载即可使用
22586 0
|
关系型数据库 Oracle Java
数据手动导入星环inceptor
1.访问星环客户端,下载TDH_Client压缩包 2.到该目录,解压压缩包,./init.sh 3.source init.
4156 0
|
Shell Android开发
Android模拟器环境中安装和删除应用程序
1. 安装Android应用程序 1) 启动Android模拟器 2) adb install (apk在PC上的路径/)*.apk (将apk文件上传到了模拟器自带操作系统的data/app目录下了) 3) Android模拟器界面中浏览打开apk应用程序   2. 删除Android应用程序 删除 Android有好几种方法。
3696 0
|
网络安全 Windows
SecureCRT乱码问题解决
SecureCRT乱码问题解决
SecureCRT乱码问题解决
|
JavaScript Java 测试技术
基于小程序的+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的+springboot+vue.js附带文章和源代码设计说明文档ppt
391 0
|
Web App开发 编解码 安全
AirServer2023版mac手机投屏电脑工具(投屏软件)使用教程
AirServer是一款能够通过本地网络将音频、照片、视频以及支持AirPlay功能的第三方工具,从 iOS 设备无线传送到 Mac 电脑的屏幕上,把Mac变成一个AirPlay终端的实用工具。
1494 0
|
8月前
|
Web App开发 编解码 边缘计算
技术角度解析快手22日出现大面积不合规内容原理·卓伊凡
技术角度解析快手22日出现大面积不合规内容原理·卓伊凡
1357 0
|
Linux
SecureCRT连接Linux时乱码问题
本文详细介绍了在使用SecureCRT连接Linux服务器时出现乱码问题的解决方法,包括设置SecureCRT字符编码、检查和配置Linux服务器字符编码、调整终端设置等。通过这些方法,您可以有效解决SecureCRT连接Linux时的乱码问题,确保正常的终端显示和操作。希望本文能帮助您在实际操作中更好地解决类似问题,提高工作效率。
1953 17
|
机器学习/深度学习 算法 计算机视觉
YOLOv8改进 | 注意力机制 | 用于增强小目标感受野的RFEM
💡💡💡本专栏所有程序均经过测试,可成功执行💡💡
|
Java 数据库 Spring
Springboot项目中VO包的含义
Springboot项目中VO包的含义
779 0

热门文章

最新文章