zoukankan      html  css  js  c++  java
  • 解决SecureCRT中文显示乱码

    操作步骤

    以下两步:

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

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

      重新登录之后生效。

      现在查看一下当前设置:
      [plain] view plaincopy
       
      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 plaincopy
     
    1. e68891 e79a84 e58886 e69e90 31 2e 74 78 74  
    2.   我       的     分      析  1  .  t  x  t  


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

    [plain] view plaincopy
     
    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 plaincopy
         
        1. let &termencoding=&encoding   
        2. set fileencodings=ucs-bom,utf-8,gbk  
        这样设置之后,utf-8和gb2312都能正确处理。
  • 相关阅读:
    AIMS 2013中的性能报告工具不能运行的解决办法
    读懂AIMS 2013中的性能分析报告
    在线研讨会网络视频讲座 方案设计利器Autodesk Infrastructure Modeler 2013
    Using New Profiling API to Analyze Performance of AIMS 2013
    Map 3D 2013 新功能和新API WebCast视频下载
    为Autodesk Infrastructure Map Server(AIMS) Mobile Viewer创建自定义控件
    ADN新开了云计算Cloud和移动计算Mobile相关技术的博客
    JavaScript修改css样式style
    文本编辑神器awk
    jquery 开发总结1
  • 原文地址:https://www.cnblogs.com/code-style/p/3191526.html
Copyright © 2011-2022 走看看