Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Функция _Encoding_URIDecode (http://forum.oszone.net/showthread.php?t=325929)

Паразит 14-04-2017 07:16 2729146

Функция _Encoding_URIDecode
 
Вопрос в основном для Creat0R, потому как, он автор этой функции. Но если кто знает, то поделитесь своими соображениями по этому поводу.

Почему у меня вызывает ошибку эта функция?

Код:

Func _Encoding_URIDecode($sString)
        Local $oSC = ObjCreate("ScriptControl")
        $oSC.Language = "JavaScript"
        Local $Encode_URI = $oSC.Eval("decodeURI('" & $sString & "');")
        $oSC = 0
        Return $Encode_URI
EndFunc

Код:

Local $Encode_URI = $oSC.Eval("decodeURI('" & $sString & "');")
Ругается на Eval.
Что такое decodeURI?
Это ActiveX компонент?
Прошерстил реестр, и у меня такого нету.

Mike909 14-04-2017 08:23 2729153

Ошибок не выдает, если в URL нет спецсимволов (кавычек например).

decoreURI - из JavaScript - почитать, например, тут

в общем URL сначала должен быть закодирован с помощью encodeURI, а уж только потом можно использовать decoreURI .

Паразит 14-04-2017 08:39 2729157

Я когда-то чистил свой реестр, и вполне может быть, что удалил лишнее.
Mike909, а у Вас в реестре есть такое? Хоть какое-то упоминание.

Mike909 14-04-2017 08:41 2729158

Паразит,
почему вопрос о реестре? и о каком реестре речь?

Паразит 14-04-2017 09:31 2729166

Речь идёт о системном реестре Windows. decodeURI - это же метод JavaSript, правильно?
Вот я и подумал, что возможно, не хватает какого-нибудь CLSID или ProgId или AppID или Interface или TypeLib.

Creat0R 14-04-2017 13:35 2729228

Паразит,
Что выдаёт этот код?

Код:

Local $oSC = ObjCreate("ScriptControl")
MsgBox(0, '', IsObj($oSC))

А вообще у вас видимо устаревшая версия библиотеки, у меня там так:

Код:

Func _Encoding_URIDecode($sString)
        Local $oSC = ObjCreate('ScriptControl')
       
        If Not IsObj($oSC) Then
                Return _Encoding_URLToHex($sString)
        EndIf
       
        $oSC.Language = 'JavaScript'
        Local $sResult = $oSC.Eval("decodeURI('" & $sString & "');")
       
        $oSC = 0
       
        Return $sResult
EndFunc


Паразит 14-04-2017 13:49 2729231

В первом варианте возвращает "1"

А функция вызывает ту же ошибку.


Время: 09:06.

Время: 09:06.
© OSzone.net 2001-