解决SecureCRT中文显示乱码
操作步骤
以下两步:
- 远程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~>
- 本地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查看,两个文件名都不能正常显示。
第三,SecureCRT客户端的编码设置要与远程linux的编码设置一致,才可以正确显示字符。
补充说明
- SecureCRT和远程linux同时都使用gb2312编码,也没有问题。在这种情况下,字符都按照gb2312进行处理。但是,笔者在自己的windows上利用网络邻居查看远端的linux samba server时,看到的gb2312中文文件名是乱码。而用UTF-8就没有问题。尽管通过设置samba能够解决,但还是建议统一用默认的UTF8格式,比较保险。
- VIM正确显示和输入中文的设置。编辑~/.vimrc,添加下面两行
- let &termencoding=&encoding
- set fileencodings=ucs-bom,utf-8,gbk
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述