解决SecureCRT中文显示乱码

解决SecureCRT中文显示乱码

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

操作步骤

下面两步:

  1. 远程linux机器。改动环境变量LANG。比如在~/.bash_profile里面加入�

    export LANG=zh_CN.UTF8

    又一次登录之后生效。

    如今查看一下当前设置:

    myname@myhost~> locale
    LANG=zh_CN.UTF8
    LC_CTYPE="zh_CN.UTF8"
    LC_NUMERIC="zh_CN.UTF8"
    LC_TIME="zh_CN.UTF8"
    LC_COLLATE="zh_CN.UTF8"
    LC_MONETARY="zh_CN.UTF8"
    LC_MESSAGES="zh_CN.UTF8"
    LC_PAPER="zh_CN.UTF8"
    LC_NAME="zh_CN.UTF8"
    LC_ADDRESS="zh_CN.UTF8"
    LC_TELEPHONE="zh_CN.UTF8"
    LC_MEASUREMENT="zh_CN.UTF8"
    LC_IDENTIFICATION="zh_CN.UTF8"
    LC_ALL=
    myname@myhost~>
    
    

  2. 本地windows机器。改动SecureCRT的设置。找到“选项”->“会话选项”->“外观”:

    *    字符编码设置为utf-8。

    *    字体设置,选择中文字体,比如新宋体。

设置完毕。然后測试一下。

基本原理

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

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

e68891 e79a84 e58886 e69e90 31 2e 74 78 74
  我       的     分      析  1  .  t  x  t

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

ced2 b5c4 b7d6 cef6 32 2e 74 78 74
我    的    分   析   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查看,两个文件名称都不能正常显示。

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

补充说明

  1. SecureCRT和远程linux同一时候都使用gb2312编码,也没有问题。在这样的情况下,字符都依照gb2312进行处理。可是,笔者在自己的windows上利用网络邻居查看远端的linux samba server时,看到的gb2312中文文件名称是乱码。而用UTF-8就没有问题。虽然通过设置samba可以解决,但还是建议统一用默认的UTF8格式,比較保险。
  2. VIM正确显示和输入中文的设置。编辑~/.vimrc,加入�下面两行
    let &termencoding=&encoding 
    set fileencodings=ucs-bom,utf-8,gbk

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118275.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CentOS 6 Yum源更新「建议收藏」

    CentOS 6 Yum源更新「建议收藏」最近在CentOS6上安装软件一直报错,安装不了,换了163,清华,阿里yum源都不行,进去链接看才发现有关CentOS6yum源包全部下架了。官宣:CentOS6停止所有更新​​​​CentOS6已经随着2020年11月的结束进入了EOL(ReachesEndofLife)。所以在2020年12月2日,CentOS官方停止了对CentOS6的所有更新,并且下架了包括官方所有的CentOS6源,目前阿里、163、清华等CentOS6源已无法使用。以下官方redme文档的解释:.

    2022年9月6日
    5
  • 公开课

    公开课

    2021年12月14日
    42
  • SQL Server 中的逻辑读与物理读

    SQL Server 中的逻辑读与物理读

    2021年11月24日
    50
  • PHP工厂模式的好处

    PHP工厂模式的好处 顾名思义,工厂是可以加工零件的,PHP程序中的工厂模式也有相同的功能,可以方便的使用一个静态的工厂方法来实例化某一个类,那么这样做的好处是什么呢?初学PHP的设计模式,以下是我个人的理解 一般我们实例化一个类会给它一些参数以便在其构析的时候可以根据不同的参数反馈出我们需要的结果。举例说明,以下是一个User类,非常简单:01.02.      03.    int

    2022年7月25日
    10
  • 正则匹配中文数字

    正则匹配中文数字正则匹配中文数字运营导入小说时遇到小麻烦,想要在章节目录前面加一些符号,word等工具搜半天没搜到,就想着用正则匹配试一下,于是用notepad++试了一下,正则匹配中文数字章节。表达式为:(第[\u4e00-\u9fa5\u767e\u5343\u96f6]{1,10}章)追加的内容\1笔记正则匹配中文个位数,\u4e00-\u9fa5百千零u767e\u534…

    2022年6月16日
    42
  • VBA基础知识整理[通俗易懂]

    VBA基础知识整理[通俗易懂]最近由于项目的需要,需要在Excel自定义一些函数,来完成特殊的处理,为了完成工作,就囫囵吞枣的写了一些代码,现在闲暇下来,就好好的学习一下,VBA的基础知识。1.变量1.Dim<>As<>2.规则变量名称必须使用一个字母作为第一个字符。变量名称不能使用空格,句点(.),感叹号(

    2022年6月3日
    50

发表回复

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

关注全栈程序员社区公众号