FtpWebRequest下载文件遇到中文文件名的问题

kofboy520 2019-08-23 05:32:08
我用FtpWebRequest下载ftp服务器上的文件的时候,遇到中文名字就找不到文件的问题。
  
FtpWebRequest downloadRequest = (FtpWebRequest)WebRequest.Create(downloadUrl);
downloadRequest.Method = WebRequestMethods.Ftp.DownloadFile;

FtpWebResponse downloadResponse = (FtpWebResponse)downloadRequest.GetResponse();
responseStream = downloadResponse.GetResponseStream();

fileStream = File.Create(saveFileUrl);
byte[] buffer = new byte[1024];
int bytesRead;
while (true)
{
bytesRead = responseStream.Read(buffer, 0, buffer.Length);
if (bytesRead == 0)
break;
fileStream.Write(buffer, 0, bytesRead);
}

应该是编码的问题,但是现在问题就是我不知道怎么转码。

调试的时候发现有俩属性自动被系统转码了,目前怀疑是因为这个原因导致找不到文件,报550错误。
哪位大神告诉我下怎么设置编码啊
...全文
1004 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kofboy520 2019-09-14
  • 打赏
  • 举报
回复
你们说的都不对,后来我用了封装的socket类,设置了一下编码就没问题了
kofboy520 2019-08-28
  • 打赏
  • 举报
回复
引用 2 楼 jx315425246 的回复:
[quote=引用 4 楼 kofboy520 的回复:] [quote=引用 2 楼 jx315425246 的回复:] 不是编码的问题,是iis的问题,iis是否打开Ftp协议
服务器是Linux系统啊。。。 跟iis有啥关系[/quote] 应该不是编码的问题,用全英文的名子也不会找到,因为那个Utf8的转码是正确的,你要打开Ftpe服务,并查看Ftp的用户名和密码是否合法。[/quote] 用全英文和数字的名字能找到,可以正常下载下来。
jx315425246 2019-08-28
  • 打赏
  • 举报
回复
linux服务器安装,中文字符集
jx315425246 2019-08-27
  • 打赏
  • 举报
回复
引用 4 楼 kofboy520 的回复:
[quote=引用 2 楼 jx315425246 的回复:]
不是编码的问题,是iis的问题,iis是否打开Ftp协议

服务器是Linux系统啊。。。
跟iis有啥关系[/quote]

应该不是编码的问题,用全英文的名子也不会找到,因为那个Utf8的转码是正确的,你要打开Ftpe服务,并查看Ftp的用户名和密码是否合法。
kofboy520 2019-08-27
  • 打赏
  • 举报
回复
引用 2 楼 jx315425246 的回复:
不是编码的问题,是iis的问题,iis是否打开Ftp协议
服务器是Linux系统啊。。。 跟iis有啥关系
kofboy520 2019-08-27
  • 打赏
  • 举报
回复
引用 1 楼 冰川711 的回复:
HttpUtility.UrlEncode url编码
不对,现在的问题是,在用FtpWebRequest。create的时候默认用了utf8的编码,导致中文名称被转码找不到文件
jx315425246 2019-08-24
  • 打赏
  • 举报
回复
不是编码的问题,是iis的问题,iis是否打开Ftp协议
冰川711 2019-08-23
  • 打赏
  • 举报
回复
HttpUtility.UrlEncode url编码

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧