我使用libcurl使用一些简单的示例代码将文件上传到FTP。文件上传成功,但如果我使用'#'字符,我选择的名称将被删除。
我将REMOTE_URL设置为“ftp://myftp:soMePassWord@mywebsite.net/ABC#EFG.dat”调用curl_easy_setopt(curl,CURLOPT_URL,REMOTE_URL),但我在FTP上看到的输出文件名是“ABC”(没有扩展名)。在#字符所在的任何地方,名称总是被切断。
我正在使用libcurl 7.21.7.0。
答案 0 :(得分:3)
解决方案是将#
网址编码为%23
。因为#
标识了fragment identifier的开头。
从版本7.20.0开始,URI的片段部分不会作为路径的一部分发送,这是以前的情况。