免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5309 | 回复: 8
打印 上一主题 下一主题

请教:libcurl的中文支持 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-13 22:02 |只看该作者 |倒序浏览
form_add 的content是中文的时候提交不能成功,以下是c的代码,



  1. curl_formadd(&formpost,
  2.                  &lastptr,
  3.                  CURLFORM_COPYNAME, name,
  4.                  CURLFORM_COPYCONTENTS, content,
  5.                  CURLFORM_END);
复制代码

请教php中字符串 content的值是中文字符串的时候,怎么处理?
能够支持中文吗?虽然c与php不同,感觉libcurl原理应该是一样的,
所以冒昧来问,C版用这个的不多
谢谢

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2007-04-13 22:27 |只看该作者
urlencode

论坛徽章:
0
3 [报告]
发表于 2007-04-14 09:11 |只看该作者

回复 2楼 HonestQiao 的帖子

urlencode?可是content不是url,是按钮或input的value,比如
<input type="submit" value="send" name="submit">
name=“submit”,content=“send”
而且我也试过用libcurl的escape函数对content进行编码
也不能成功。。。

论坛徽章:
0
4 [报告]
发表于 2007-04-14 09:38 |只看该作者
我没用过libcurl,,,看上去好像和php的curl差不多。。应该是参数问题。

给你我用的curl的一些设置

$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
                $header[] = "Accept-Language: en-us,en;q=0.5";
                $header[] = "Accept-Charset: utf-8;q=0.7,*;q=0.7";

                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url); // set url to post to
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_TIMEOUT, 10);
                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                curl_setopt($ch, CURLOPT_ENCODING,"");         
                curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
                curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,10);
                curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, 0);

论坛徽章:
0
5 [报告]
发表于 2007-04-14 16:40 |只看该作者
原帖由 james.liu 于 2007-4-14 09:38 发表
我没用过libcurl,,,看上去好像和php的curl差不多。。应该是参数问题。

给你我用的curl的一些设置


其实就是libcurl for c与libcurl for php之间的不同,差不多
不过我用了你的参数之后,还是不能解决
我看了libcurl  for php,好像没有对应c中的form_add的函数
php都是通过POSTFIELDS来post数据,这样的肯定是要urlencode
但是libcurl for c的form_add函数 说白了就是自动填写表单然后模拟点击
post数据,特别是submit button的值是中文的时候,这个到底要不要urlencode以及如何encode还真是个问题?
反正我能在英文中成功登录,中文的各种编码以及urlencode都试过了

论坛徽章:
0
6 [报告]
发表于 2007-04-14 19:52 |只看该作者
自动填写表单然后模拟点击
post数据



如果你要完成的是这个功能的话,,,那么我给你的参数就是php采用curl的参数.

这些参数完成的就是这样一个功能.


submit button是否中文有关系吗?第一你要确认你要传递的是什么,,,如果用curl,,不需要encode.urlencode一般用于get方法.

如果你不是参数问题,那么你要问问c用过libcurl的朋友,或者上他们网站看看,还有加入他们的mail list问问.

论坛徽章:
0
7 [报告]
发表于 2007-04-14 19:59 |只看该作者
原帖由 james.liu 于 2007-4-14 19:52 发表



如果你要完成的是这个功能的话,,,那么我给你的参数就是php采用curl的参数.

这些参数完成的就是这样一个功能.


submit button是否中文有关系吗?第一你要确认你要传递的是什么,,,如果用curl,,不需要en ...

呵呵   还真与是否中文无关
问题出在了另外一个地方,一个hidden的value没有传过去,问题解决了
ps:get的需要encode,而 post不需要encode吧

[ 本帖最后由 yjmwolf 于 2007-4-14 20:00 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2007-04-14 20:01 |只看该作者

回复 7楼 yjmwolf 的帖子

另外,一般登录bbs后,有一个跳转页面,
我怎么设置个timeout等到自动跳转到目标页面?

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
9 [报告]
发表于 2007-04-14 20:12 |只看该作者
原帖由 yjmwolf 于 2007-4-14 20:01 发表
另外,一般登录bbs后,有一个跳转页面,
我怎么设置个timeout等到自动跳转到目标页面?


这个需要你读取页面然后分析里面的跳转网址。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP