linux ftp客户端的编码问题

狂风中的少年 提交于 2020-03-10 10:27:52

准备下载ftp上的文件,记得curl可以实现下载ftp的文件,然后尝试了,

curl ftp://username:password@192.168.1.2/平台全量包/package0811.zip -o package0811.zip

结果是卡住不动了!卡住不动了!卡住不动了!没有出现预想的下载进度条。

怀疑自己的命令写错了,然后使用ftp客户端

#ftp
>open 192.168.1.2
>username
>password
>ls

输入完上面的命令之后发现中文乱码啊

百度搜索了个中ftp客户端乱码的问题,大部分都是windows的问题(感觉google靠谱,虽然麻烦)。

然后自己开始探索,第一步在ssh终端上修改当前会话的编码,修改为gbk,然后使用ftp登录,发现使用ls命令之后能显示中文路径,但是【cd 平台全量包】之后,就会卡住不动了。不得不管理终端页面。心想既然是编码的问题,那就从编码下手吧,远程的FTP server的编码是gbk的,而且我这边也修改不了。linux 的FTP命令行客户端也不能修改编码。然后突然想使用window的命令行试试,结果正常,能够cd目录。看样子跟命令行环境也有关系,修改shell环境变量

#export LANG="zh_CN.GBK"

再次尝试,OK,可以正常的浏览中文目录。

后来也尝试过其他的方法,最简单的就是修改终端的编码,例如我设置的终端编码为utf-8,然后修改为gbk。直接使用下面的命令就可以了

curl ftp://username:password@192.168.1.2/平台全量包/package0811.zip -o package0811.zip

  修改为 

GB18030包含GBK包含GB2312

export命令是针对当前shell环境的,下次登录之后就恢复为原来的环境变量了。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!