如何使用 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)
}

来源:https://www.autohotkey.com/boards/viewtopic.php?t=84825

您想放弃 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 %`