Войти

Показать полную графическую версию : [решено] Функция _Encoding_URIDecode


Паразит
14-04-2017, 07:16
Вопрос в основном для 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
Ошибок не выдает, если в URL нет спецсимволов (кавычек например).

decoreURI - из JavaScript - почитать, например, тут (https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/decodeURI)

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

Паразит
14-04-2017, 08:39
Я когда-то чистил свой реестр, и вполне может быть, что удалил лишнее.
Mike909, а у Вас в реестре есть такое? Хоть какое-то упоминание.

Mike909
14-04-2017, 08:41
Паразит,
почему вопрос о реестре? и о каком реестре речь?

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

Creat0R
14-04-2017, 13:35
Паразит,
Что выдаёт этот код?

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
В первом варианте возвращает "1"

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




© OSzone.net 2001-2012