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


相关推荐

  • 第三方API接口_第三方个人支付接口

    第三方API接口_第三方个人支付接口转载:https://www.jianshu.com/p/fdaba9124ae7下面列举了国内的常用、实用的API接口,按照笔记、出行、词典、电商、地图、电影、即时通讯、开发者网站、快递查询、旅

    2022年8月4日
    3
  • Ubuntu16.04忘记用户登录密码以及管理员密码,重置密码的解决方案[通俗易懂]

    Ubuntu16.04忘记用户登录密码以及管理员密码,重置密码的解决方案[通俗易懂]1.问题现象:由于自己想修改一下当前用户名,结果乱改了部分配置文件导致登陆时,原先的密码失效2.问题原因问题原因,搞不懂,只是修改了/etc/shadow和/etc/sudoers这俩文件3.解决方案在系统开机前常按shift键进入grub界面,如下:选择*ubuntu高级选项按enter键进入如下界面通过up键和down键选中recoverymode…

    2022年9月29日
    0
  • Mybatis教程(实战看这一篇就够了)

    Mybatis教程(实战看这一篇就够了)Mybatis教程。Mybatis实战详细教程。Mybatis是一款优秀的持久层框架。其封装了JDBC操作,免去了开发人员编写JDBC代码以及设置参数和获取结果集的重复性工作。通过编写简单的XML或Java注解即可映射数据库CRUD操作。本专栏从原始的JDBC谈起,深入浅出讲解Mybatis实战技能。

    2022年5月31日
    30
  • GPG error 解决方案「建议收藏」

    GPG error 解决方案「建议收藏」错误提示:GPG错误:http://mirrors.163.commaverick-updatesRelease:下列签名无效:BADSIG40976EAF437D05B5UbuntuArchiveAutomaticSigningKey@ubuntu.com>修复方法gp

    2022年10月13日
    0
  • C#接口知识大全收藏建议收藏

    第一节接口慨述接口(interface)用来定义一种程序的协定。实现接口的类或者结构要与接口的定义严格一致。有了这个协定,就可以抛开编程语言的限制(理论上)。接口可以从多个基接口继承,而类或结构可

    2021年12月21日
    35
  • 计算机cmd入门,教大家5个装逼用的CMD命令,让人一看你就是个电脑高手

    计算机cmd入门,教大家5个装逼用的CMD命令,让人一看你就是个电脑高手很多电脑小白使用电脑时,只会用鼠标点来点去的,教大家5个装逼用的CMD命令,让人一看你就是个电脑高手,专门震慑小姐姐、小学生。首先我们需要打开CMD命令提示符,这个操作大家都知道,按下键盘上的Windows+R键,然后输入“CMD”,按下回车键。一、改变命令提示符配色我们可以先输入“Color”—“空格”—“help”,来获取颜色的帮助。从这里可以看到,各种颜色的代码:0~7、A~F。如果想…

    2022年5月5日
    998

发表回复

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

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