找回密码
 加入
搜索
查看: 3401|回复: 5

请教关于URLDecode的问题

[复制链接]
发表于 2008-12-11 11:15:48 | 显示全部楼层 |阅读模式
在AutoIt中,_UnicodeURLDecode对符号Decode没问题,但是对文字总是不能正确解码,
比如将“%E4%B8%AD%E5%9B%BD” 解码成“中国”
_UnicodeURLDecode("%E4%B8%AD%E5%9B%BD")总是为空。请教如何解决这个问题。
我的_UnicodeURLDecode方法如下:
Func _UnicodeURLDecode($toDecode)
        Local $strChar = "", $iOne, $iTwo
        Local $aryHex = StringSplit($toDecode, "")
        For $i = 1 To $aryHex[0]
                If $aryHex[$i] = "%" Then
                        $i = $i + 1
                        $iOne = $aryHex[$i]
                        $i = $i + 1
                        $iTwo = $aryHex[$i]
                        $strChar = $strChar & Chr(Dec($iOne & $iTwo))
                Else
                        $strChar = $strChar & $aryHex[$i]
                EndIf
        Next
        $Process = StringToBinary(StringReplace($strChar, "+", " "))
        $DecodedString = BinaryToString($Process, 4)
        Return $DecodedString
EndFunc  


[ 本帖最后由 robin.von 于 2008-12-11 17:05 编辑 ]
发表于 2008-12-11 12:49:48 | 显示全部楼层
$x=UrlEnc('上海')
MsgBox(32,"上海",$x)
MsgBox(32,"上海",UrlDec($x))
Func UrlEnc($Sz_url)
        Local $str=StringTrimLeft(StringToBinary($Sz_url,4),2)
        Local $ret
        For $i=1 to StringLen($str) Step 2
                $ret &='%' & StringMid($str,$i,2)
        Next
        Return $ret
EndFunc

Func UrlDec($Sz_url)
                Local $str='0x' & StringReplace($Sz_url,"%","")
        Local $ret=BinaryToString($str,4)
        Return $ret
EndFunc
 楼主| 发表于 2008-12-11 17:05:01 | 显示全部楼层
原帖由 thesnow 于 2008-12-11 12:49 发表
[au3]$x=UrlEnc('上海')
MsgBox(32,"上海",$x)
MsgBox(32,"上海",UrlDec($x))
Func UrlEnc($Sz_url)
        Local $str=StringTrimLeft(StringToBinary($Sz_url,4),2)
        Local $ret
        For $i=1 t ...

谢谢,问题解决了!
发表于 2011-10-24 02:01:20 | 显示全部楼层
此贴管用 也解决了我的问题
发表于 2011-11-12 01:48:02 | 显示全部楼层
正好用上  哈哈 不错不错
发表于 2011-11-12 20:06:57 | 显示全部楼层
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-1 09:44 , Processed in 0.101712 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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