如何使用 AutohotKey 打开 url 本身包含特殊字符“%”的网站?
How to open a website using AutohotKey that contains special characters "%" in the url itself?
我想用这行代码打开这个网站:
Run,https://logowanie.uek.krakow.pl/cas/login?service=https%3A%2F%2Fe-uczelnia.uek.krakow.pl%2Flogin%2Findex.php%3FauthCAS%3DCAS
当我尝试 运行 这一行时,我得到了这个错误:
The following variable name contains an illegal character:
'2Fe-uczelnia-uek.krakow.pl'
The program will exit.
我很确定“%”是问题所在。
使用 运行 命令时不需要编码 URL。
Run,https://logowanie.uek.krakow.pl/cas/login?service=https://e-uczelnia.uek.krakow.pl/login/index.php?authCAS=CAS
但是如果你真的需要或者想编码,你可以试试这个功能:
str := "hello%20world"
MsgBox, % decoded := EncodeDecodeURI(str, false)
MsgBox, % EncodeDecodeURI(decoded)
EncodeDecodeURI(str, encode := true, component := true) {
static Doc, JS
if !Doc {
Doc := ComObjCreate("htmlfile")
Doc.write("<meta http-equiv=""X-UA-Compatible"" content=""IE=9"">")
JS := Doc.parentWindow
( Doc.documentMode < 9 && JS.execScript() )
}
Return JS[ (encode ? "en" : "de") . "codeURI" . (component ? "Component" : "") ](str)
}
您想放弃 legacy syntax, and enter the modern expression syntax 的使用,方法是在该参数的开头指定一个 %
。
然后你可以显式指定一个字符串 ""
:
Run, % "https://logowanie.uek.krakow.pl/cas/login?service=https%3A%2F%2Fe-uczelnia.uek.krakow.pl%2Flogin%2Findex.php%3FauthCAS%3DCAS"
如果您出于某种原因想要使用旧语法,(没有这样做的正当理由),你想要 escape %
和 `
。
我想用这行代码打开这个网站:
Run,https://logowanie.uek.krakow.pl/cas/login?service=https%3A%2F%2Fe-uczelnia.uek.krakow.pl%2Flogin%2Findex.php%3FauthCAS%3DCAS
当我尝试 运行 这一行时,我得到了这个错误:
The following variable name contains an illegal character:
'2Fe-uczelnia-uek.krakow.pl'
The program will exit.
我很确定“%”是问题所在。
使用 运行 命令时不需要编码 URL。
Run,https://logowanie.uek.krakow.pl/cas/login?service=https://e-uczelnia.uek.krakow.pl/login/index.php?authCAS=CAS
但是如果你真的需要或者想编码,你可以试试这个功能:
str := "hello%20world"
MsgBox, % decoded := EncodeDecodeURI(str, false)
MsgBox, % EncodeDecodeURI(decoded)
EncodeDecodeURI(str, encode := true, component := true) {
static Doc, JS
if !Doc {
Doc := ComObjCreate("htmlfile")
Doc.write("<meta http-equiv=""X-UA-Compatible"" content=""IE=9"">")
JS := Doc.parentWindow
( Doc.documentMode < 9 && JS.execScript() )
}
Return JS[ (encode ? "en" : "de") . "codeURI" . (component ? "Component" : "") ](str)
}
您想放弃 legacy syntax, and enter the modern expression syntax 的使用,方法是在该参数的开头指定一个 %
。
然后你可以显式指定一个字符串 ""
:
Run, % "https://logowanie.uek.krakow.pl/cas/login?service=https%3A%2F%2Fe-uczelnia.uek.krakow.pl%2Flogin%2Findex.php%3FauthCAS%3DCAS"
如果您出于某种原因想要使用旧语法,(没有这样做的正当理由),你想要 escape %
和 `
。