POST的内容中含有&和=字符,该如何转义?
POST的内容中含有&和=字符,该如何转义?因为&和=在post的正文中有特殊含义,比如我想把
"content=123454"
没有问题。
如果我想post 这个: "content=123454&sadqwf",就出问题了,因为WinHttp.WinHttpRequest.5.1会把字符串中的&识别成下一条索引,导致的结果就是,content索引的内容被&给截断了,只有&前面的部分发送出去了,后面的被丢弃了。
请问这种情况该怎么办?如何才能把&转义成普通符号 自己解决了,但不知道有没有系统函数能直接解决这个问题。
原理是把post的正文编码成URL格式。
我是参考的这个帖子第4页,文白兄弟的回复:
Func _GoodDay_URLEncoder($lKeyword, $iCode = 1)
Local $aKeyword = StringRegExp($lKeyword, '([\w\.\-\* ]+|[^\w\.\-\* ]+)', 3), $lRet = ''
For $lKeyword In $aKeyword
If StringRegExp($lKeyword, '^[^\w\.\-\* ]+$') Then
$lRet &= StringRegExpReplace(StringTrimLeft(StringToBinary($lKeyword, $iCode), 2), '(.{2})', '%$1')
Else
$lRet &= StringReplace($lKeyword, ' ', '+')
EndIf
Next
Return $lRet
EndFunc
用这个函数把post正文编码一下就好了。为什么这样能行?我也不知道,反正就是能行。
页:
[1]