嵌入式设备上有个WEB Server(Boa),通过界面下载设备上的文件,文件名字为"1 23.txt",下载到本地时变成
"1+23.txt",下载前端的代码是这么写的
document.data.data.value = fileName;
document.data.action = "/cgi-bin/download.cgi";
document.data.submit();
CGI的代码
getcgidata(stdin, req_method);
char *getcgidata(FILE *fp, char *requestmethod)
{
if(strcmp(requestmethod, "POST") == 0)
{
len = atoi(getenv("CONTENT_LENGTH"));
while(1)
{
input[i] = (char)fgetc(fp);
if(i == size)
{
input[i + 1] = '\0';
return input;
}
--len;
if(feof(fp) || (!(len)))
{
i++;
input[i] = '\0';
return input;
}
i++;
}
}
}
fileName名字带有空格,到download.c中查看空格变成加号了,这是为什么?
从CGI环境中读出来的时候就变成加号了,百度了一下说是编码的问题,但是怎么改了?