`

secureCRT和secureFx设置编码

阅读更多

背景

项目部署在centos7系统上,在系统中上传中文文件名的文件,在linux服务器上使用nginx作为文件服务器下载系统上传的文件。正常下载。但是通过secureCRT和secureFx查看上传的文件时,这些中文文件名乱码。

原因

在服务器上使用locale命令查看系统编码为UTF-8(linux默认系统编码),项目编码也是utf-8,因此上传文件时保存在linux上的文件名是utf-8编码的文件名。通过浏览器访问nginx文件服务器时,中文转为base64时默认也是使用utf-8转码。因此能够正常下载。而通过secure工具查看文件时乱码的原因是secure工具安装在windows系统中,默认编码与windows一致都是gbk。

验证

在项目中上传文件名为“佄佻.xlsx”的文件,下载正常。在secure工具上查看到的文件名是“浣勪交.xlsx”。为什么这样呢?“佄”utf-8码为E4BD84,“佻”utf-8码为E4BDBB。“浣”gbk码为E4BD,“勪”gbk码为84E4,“交”gbk码为BDBB。所以服务器保存“佄佻”的utf-8码,secure工具以gbk方式解析它

解决

1.修改secure CRT的session编码

Options >> SessionOptions >> Terminal  >>  Appearance >> Character encoding 修改为utf-8

2.修改secure Fx的编码

Options >> GlobalOptions  >> General  >>  Configuration Paths找到配置文件目录,进入该目录下的Sessions子目录,找到session对应的ini配置文件,将文件中Filenames Always Use UTF8值改为00000001,保存。重新进入Fx

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics