我做了个向FTP服务器上传文件,先
CInternetSession is;
CFtpConnection* FtpConnection;
FtpConnection = is.GetFtpConnection(m_FTPServerIP, m_FTPUsername,m_FTPPassword);
CInternetFile*  ifp = FtpConnection->OpenFile(文件名, GENERIC_WRITE);     
...
在OpenFile后,创建的FTPfile的文件名为英文的没问题,要是中文文件名,文件名就成乱码
文件里面内容没问题,很烦,不知道中文文件名为什么成乱码?哪位前辈帮忙解释下?

解决方案 »

  1.   

    fjl442510963
    (菜鸟gg)
    等 级:
    结帖率:0.00%
    lz有些不厚道啊。想想还是给给个建议,也不知道有效否。反正以前URL乱码问题是这样解决的。
    请求之前可以将中文URL编码成UTF-8,然后服务器端接收到了之后再重新编码回GBK。
      

  2.   

    要实现 GB2312 (其实是GBK)转换为 UTF-8 其实很简单,先用 MultiByteToWideChar 把 GB2312 转换为 Unicode,再用 WideCharToMultiByte 把 Unicode 转换为 UTF-8 就可以了。UTF-8 转换为 GB2312 是个相反的过程,先用 MultiByteToWideChar 把 UTF-8 转换为 Unicode,再用 WideCharToMultiByte 把 Unicode 转换为 GB2312 就可以了。 ( 雁过留声 发表于 2007-1-11 9:11:00)
    具体的看看这篇文章。
    http://www.cppblog.com/sunraiing9/archive/2007/03/21/20281.html
    也不知道具体的实现了没,反正就这个思路,因为我也是最近才搞VC的,以前搞JAVA的,一个方法就搞定了。
      

  3.   

    CString filepath;
    FtpConnection->OpenFile(filepath, GENERIC_WRITE); 
    filepath我转换成了宽字符,但Openfile(),的参数是LPCTSTR的,无法赋值啊
      

  4.   

    我后来在serv-u里设置了,就行了,谢谢各位,好久没登CSDN,忘记结贴了。