问题描述
我在C#中使用Tamir.SharpSsh连接SFTP下载文件,其中数字和英文命名的文件可以下载,但是如果文件名中包含有中文的话就无法下载,求各位指教!引用
publicstaticvoidSFTP_Download(stringip,stringuser,stringpwd,stringstrFromFile,stringstrToFile){Tamir.SharpSsh.Sftpst=newSftp(ip,user,pwd);st.Connect(22);st.Get(strFromFile,strToFile);st.Close();}
引用
publicboolGet(stringremotePath,stringlocalPath){try{Tamir.SharpSsh.java.Stringsrc=newTamir.SharpSsh.java.String(remotePath);Tamir.SharpSsh.java.Stringdst=newTamir.SharpSsh.java.String(localPath);m_sftp.get(src,dst);returntrue;}
解决方案
解决方案二:
是下载报错还是下载的文件中文乱码?
解决方案三:
如果服务器端的文件包含中文名字,你这里文件名会显示乱码,而且你无法使用乱码的文件名去下载文件,会报找不到文件,这个使用你只要到/SharpSSH/java/String.cs这个文件里将publicstaticstringgetString(byte[]arr,intoffset,intlen)这个方法里将默认字符集改为UTF8就可以了,因为SFTP服务器上都是使用UTF8编码的,而中文系统中往往默认使用GB2312这样就会乱码我也遇到这个问题,找了好几天了
解决方案四:
链接地址发错
时间: 2024-10-23 01:50:31