C读取文件中含有%的字符串

lich0008 2014-07-23 04:07:43
%E4%B8BB%E588%86E7%B1BB%E58F%B73D%2827A24B5%2F12%27+or+%27A24B5%2F14%27+or+%27A24D1%2F14%27%29%29%
是网页post请求的一部分,每当我从文件中读取之后提交了就找不到相应的网页。

如果我把文件里的所有%替换为%%,请求成功了,但是请求的网页却不对

到底是怎么回事呢?
...全文
207 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-07-24
  • 打赏
  • 举报
回复
引用 13 楼 litch008 的回复:
问题解决了,是fgets会吧\n读出来,使用fgetc控制串尾\n的读入就OK了
fgets(str,maxlen,f);
if ('\n'==str[strlen(str)-1]) str[strlen(str)-1]=0;
lich0008 2014-07-24
  • 打赏
  • 举报
回复
问题解决了,是fgets会吧\n读出来,使用fgetc控制串尾\n的读入就OK了
lich0008 2014-07-23
  • 打赏
  • 举报
回复
这个两个%%下的post请求,请求的网页有问题
lich0008 2014-07-23
  • 打赏
  • 举报
回复
OH no,又忘记了,是网页不对,双引号的情况下,虽然能拿到网页
赵4老师 2014-07-23
  • 打赏
  • 举报
回复
引用 9 楼 litch008 的回复:
谢谢你们啊 我的问题居然莫名的解决了 虽然不知道怎么解决的 但还是十分的感谢你们,特别是赵老师
也可能只是浏览器的缓存干扰。
lich0008 2014-07-23
  • 打赏
  • 举报
回复
谢谢你们啊 我的问题居然莫名的解决了 虽然不知道怎么解决的 但还是十分的感谢你们,特别是赵老师
lich0008 2014-07-23
  • 打赏
  • 举报
回复
单%下post请求是对的,但是网页找不到
lich0008 2014-07-23
  • 打赏
  • 举报
回复
recordCursor=67&strWhere=((............=('A24B3/12' or 'A24B3/16' or 'A24B5%' or 'A24B15%' or 'A24D1%' or 'A24D3%') not ............=('A24B5/12' or 'A24B5/14' or 'A24D1/14')))&searchType=&id=86A9CF921BB54DA0BC9FD6444665F0C9&t=CN&filterChannel=&strSortMethod=-......... 中文全成......
赵4老师 2014-07-23
  • 打赏
  • 举报
回复
引用 5 楼 litch008 的回复:
[quote=引用 2 楼 lovesmiles 的回复:] [quote=引用 楼主 litch008 的回复:] %E4%B8BB%E588%86E7%B1BB%E58F%B73D%2827A24B5%2F12%27+or+%27A24B5%2F14%27+or+%27A24D1%2F14%27%29%29% 是网页post请求的一部分,每当我从文件中读取之后提交了就找不到相应的网页。 如果我把文件里的所有%替换为%%,请求成功了,但是请求的网页却不对 到底是怎么回事呢?
这些是汉字,你还要将它们转成汉字。[/quote] 请求的时候直接使用汉字发送post请求行不行呢? [/quote] 不行,我猜。http协议不支持。所以需要URLencode和URLdecode
lich0008 2014-07-23
  • 打赏
  • 举报
回复
引用 2 楼 lovesmiles 的回复:
[quote=引用 楼主 litch008 的回复:] %E4%B8BB%E588%86E7%B1BB%E58F%B73D%2827A24B5%2F12%27+or+%27A24B5%2F14%27+or+%27A24D1%2F14%27%29%29% 是网页post请求的一部分,每当我从文件中读取之后提交了就找不到相应的网页。 如果我把文件里的所有%替换为%%,请求成功了,但是请求的网页却不对 到底是怎么回事呢?
这些是汉字,你还要将它们转成汉字。[/quote] 请求的时候直接使用汉字发送post请求行不行呢?
lich0008 2014-07-23
  • 打赏
  • 举报
回复
请求的时候直接使用汉字发送post请求行不行呢?
lich0008 2014-07-23
  • 打赏
  • 举报
回复
我用wireshark抓包试了下,在单%号的情况下找不到网页,但是双%%号的情况下请求的网页排序规则没对 &searchType=&id=86A9CF921BB54DA0BC9FD6444665F0C9&t=CN&filterChannel=&strSortMethod=-%E7%94%B3%E8%AF%B7%E6%97%A5
勤奋的小游侠 2014-07-23
  • 打赏
  • 举报
回复
引用 楼主 litch008 的回复:
%E4%B8BB%E588%86E7%B1BB%E58F%B73D%2827A24B5%2F12%27+or+%27A24B5%2F14%27+or+%27A24D1%2F14%27%29%29% 是网页post请求的一部分,每当我从文件中读取之后提交了就找不到相应的网页。 如果我把文件里的所有%替换为%%,请求成功了,但是请求的网页却不对 到底是怎么回事呢?
这些是汉字,你还要将它们转成汉字。
赵4老师 2014-07-23
  • 打赏
  • 举报
回复
建议用wireshark抓包。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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