解决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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Mysql锁详解(行锁、表锁、意向锁、Gap锁、插入意向锁)

    Mysql锁详解(行锁、表锁、意向锁、Gap锁、插入意向锁)锁:对“某种范围”的数据上“某种锁”1.“某种范围”:行、表2.“某种锁”2.1共享锁SharedLocks(S锁)1、兼容性:加了S锁的记录,允许其他事务再加S锁,不允许其他事务再加X锁2、加锁方式:select…lockinsharemode2.2排他锁ExclusiveLocks(X锁)1、兼容性:加了X锁的记录,不允许其他事务再加S锁或者X锁2、加锁方式…

    2022年5月9日
  • 会产生classcastexception_服务异常是什么原因

    会产生classcastexception_服务异常是什么原因ClassCastException是JVM在检测到两个类型间转换不兼容时引发的运行时异常。此类错误通常会终止用户请求。在执行任何子系统的应用程序代码时都有可能发生ClassCastException异常。通过转换,可以指示Java编译器将给定类型的变量作为另一种变量来处理。对基础类型和用户定义类型都可以转换。Java语言规范定义了允许的转换,其中大多数可在编译时进行验证。不过,某些转换还需要运行…

    2022年9月10日
  • 数据仓库之DWD层

    数据仓库之DWD层DWD(DataWareHouseDetail)数据明细层,主要是将从业务数据库中同步过来的ODS层数据进行清洗和整合成相应的事实表。事实表作为数据仓库维度建模的核心,需要紧紧围绕着业务过程来设计。在拿到业务系统的表结构后,进行大概的梳理,再与业务方沟通整个业务过程的流转过程,对业务的整个生命周期进行分析,明确关键的业务步骤,在能满足业务需求的前提下,尽可能设计出更通用的模型。业务方有时只仅仅只是考虑了当下的情况。例如业务想要一个审核通过人员的明细数据,我们设计了一个全量的审核明细表,过了几天,业务

    2022年6月26日
  • 【EF】 更新条目时出错。有关详细信息,请参见内部异常。[通俗易懂]

    【EF】 更新条目时出错。有关详细信息,请参见内部异常。[通俗易懂]【EF】 更新条目时出错。有关详细信息,请参见内部异常。

    2022年4月24日
  • 线程有哪些属性_thread runnable callable区别

    线程有哪些属性_thread runnable callable区别1、当在主线程中创建了一个线程,那么该线程的IsBackground默认是设置为FALSE的。2、当主线程退出的时候,IsBackground=FALSE的线程还会继续执行下去,直到线程执行结束。3、只有IsBackground=TRUE的线程才会随着主线程的退出而退出。4、当初始化一个线程,把Thread.IsBackground=true的时候,指示该线程为后台线程。后台线程将会随着主线程的退出而退出。5、原理:只要所有前台线程都终止后,CLR就会对每一个活在的后台线程调用Abort()

    2022年10月17日
  • 【转载】小小的公共库,大大的耦合,你痛过吗?

    【转载】小小的公共库,大大的耦合,你痛过吗?

    2021年11月21日

发表回复

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

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