找回密码
 加入
搜索
查看: 4514|回复: 4

[IE类操作] 请教关于winhttp获取乱码的问题

[复制链接]
发表于 2011-5-13 01:07:53 | 显示全部楼层 |阅读模式
本帖最后由 kxing 于 2011-5-13 01:25 编辑

我利用winhttp的post提交中文到服务器处理时总是出现乱码。
但是如果php自身输出的中文获取回来是正常的,提交上去就乱码。
不管服务器上的php程序文件是utf8或gbk编码都无效。
php代码很简单,就是利用post方式接收提交上来的name并输出。
可是在使用winhttp提交上去后就变成乱码了,求高手帮帮忙。。。
我估计应该就是提交的传输过程中改变编码了。
万分感谢!!!!

au3提交表单函数:
#include <winhttp.au3>

$text=_winhttp("sky808.gotoip1.com/test-gbk.php?name=用户名")
msgbox(0,'',$text)


func _winhttp($url)
$aURL=stringregexp($url,"^(?:http\://)?([^/]+)([^\?]*)\?(.+)$",3)
if @error then return false

$hOpen=_WinHttpOpen();建立会话
if @error then return false

$hConnect=_WinHttpConnect($hOpen,$aURL[0]);建立连接
If @error Then
msgbox(16,"错误","连接服务器超时,请稍后再试!")
_WinHttpCloseHandle($hOpen)
return false
endif

$hRequest=_WinHttpOpenRequest($hConnect,"POST",$aURL[1]);建立请求
if @error then
msgbox(16,"错误","建立请求失败,请稍后再试!")
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hOpen)
return false
endif

;发送请求
_WinHttpSendRequest($hRequest, "Content-Type: application/x-www-form-urlencoded",$aURL[2])
if @error then
msgbox(16,"错误","发送请求失败,请稍后再试!")
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hOpen)
return false
endif

;等待应答
_WinHttpReceiveResponse($hRequest)

local $result=""
if _WinHttpQueryDataAvailable($hRequest) then;检查是否有可用于读取的数据
while 1
$result&=_winhttpreaddata($hRequest)
if @error then exitloop
  Wend
else
msgbox(16,"错误","没有可用的数据!")
endif

;关闭句柄
_WinHttpCloseHandle($hRequest)
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hOpen)

return $result
endfunc;winhttp
php代码:
<?
echo "php自身输出的数据:用户名,提交上来的数据:".$_POST['name'];
?>
服务器上还有个utf8版的:text-utf8.php
发表于 2011-5-13 07:31:01 | 显示全部楼层
回复 1# kxing

自己查一下相关的RFC协议吧,application/x-www-form-urlencoded 本来就不支持中文的。
发表于 2011-5-13 08:22:54 | 显示全部楼层
你是不是复制的时候把论坛设置防到连添加乱码也复制进去了
 楼主| 发表于 2011-5-13 09:44:02 | 显示全部楼层
哪位高人能给个答案呢,实在不好解决!!!
 楼主| 发表于 2011-5-13 09:44:27 | 显示全部楼层
看了相关的资料,说添加 charset=utf-8依然无效。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-14 14:45 , Processed in 0.137710 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表