日期:2014-05-20  浏览次数:21370 次

C# 写ftp上传文件,中文名称乱码
C# 用FtpWebRequest写的文件上传,上传到服务器后,中文文件名是乱码,ftp服务器是linux

------解决方案--------------------
那就最好使用英文名称吧
------解决方案--------------------
编码问题吧
------解决方案--------------------
看看上传程序中的文件名是否有问题。

编码问题是的了。
------解决方案--------------------
两边的编码问题?楼主是否编码使用的是default。这样就有可能造成两边编码不一致出现乱码
------解决方案--------------------

------解决方案--------------------
呵呵,这个问题曾经也困扰我好久哇。因为FTP协议本身不支持中文的编码所以成乱码了,还是要求用户输入英文之类的吧
------解决方案--------------------
应该是编码问题,顶个~
------解决方案--------------------
你先查查看那个服务器是否支持utf-8等编码。传统的FTP 协议用的都是ASCII编码的。

再有一个办法就是先学习下别人的实现 - 如filezilla的服务器、客户端,拿wireshark抓取FTP的包看看文件名是什么编码的

------解决方案--------------------
乱码 可能是统一字符的问题。
我的方法是把名字和路径 加密(转换 ) 再解密 转换回来。
Server.UrlEncode( usname);

------解决方案--------------------
编码问题!帮楼主顶了,希望你早日解决!
------解决方案--------------------
C# code

filename(文件名称)=" + HttpUtility.UrlEncode("中文名称", System.Text.Encoding.UTF8).ToString()

------解决方案--------------------
解 Server.UrlDecode
------解决方案--------------------
先加密。。后解密。。。
------解决方案--------------------
探讨
先加密。。后解密。。。

------解决方案--------------------
同样的方法,你试过在windows下上次能ok吗?如果可以,应该要检查你的linux ftp服务器的设置了。 reply by 阿捷
------解决方案--------------------
windows下使用Encoding.Default.GetBytes((str).ToCharArray());
可以的
------解决方案--------------------
帮顶 学习
------解决方案--------------------
恩 都说了 上传url编码下 下载解码下! urlEncode