免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: chinaunix林路
打印 上一主题 下一主题

linux访问windows下FTP服务器,中文乱码,如何解决? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-12-03 11:29 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
12 [报告]
发表于 2009-12-03 14:59 |只看该作者
支持uft-8。只有统一才会有方便

论坛徽章:
0
13 [报告]
发表于 2009-12-03 16:40 |只看该作者
刚好最近做了个脚本,实现自动从 ftp 服务器取文件的功能,就碰到了编码问题,其实很简单:
把“服务器取下来的数据”“往服务器上传送的数据”进行一下编码转换即可。

我是在 Windows 下的 Cygwin 1.7 环境下测试的

  1. ftp_anonymous=true
  2. ftp_server=localhost
  3. ftp_user=anonymous
  4. ftp_password=

  5. ftp_server_encoding=GBK
  6. local_encoding=UTF-8
  7. file_name_prefix_ftp_server=XXX数据(中文文件名)_
  8. file_list=FileListOnFTPServer.txt

  9. if [ "$ftp_server_encoding" != "$local_encoding" ]
  10. then
  11.         # 这是往 ftp server 传送的数据:ls 命令里的参数,要转换成 ftp 服务器的编码
  12.         file_name_prefix_ftp_server=`echo $file_name_prefix_ftp_server | iconv -f $local_encoding -t $ftp_server_encoding`
  13. fi

  14. if $ftp_anonymous
  15. then
  16.         echo 匿名登录 $ftp_server ……
  17.         lftp -d -e "debug 10; set net:max-retries 3; renlist ${file_name_prefix_ftp_server}*.txt > $file_list; exit" $ftp_server
  18. else
  19.         echo 以 $ftp_user 用户登录 $ftp_server ……
  20. fi

  21. if [ "$ftp_server_encoding" != "$local_encoding" ]
  22. then
  23.         # 这是从 ftp 服务器上取下来的数据,也要转换一下编码
  24.         iconv -f $ftp_server_encoding -t $local_encoding $file_list
  25. else
  26.         cat $file_list
  27. fi
复制代码


当然这是我是在自动化任务里的做法,照你的交互式的环境,还是遵循楼上几位说的,统一一下本地与服务器的编码。

[ 本帖最后由 lovetide 于 2009-12-3 16:50 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP