Скрипт TeXstudio с системным вызовом и "?"

Скрипт TeXstudio с системным вызовом и "?"

Я хочу создать простой скрипт в texstudio, который можно будет использовать для поиска выбранного слова в браузере.

Все работает правильно, за исключением того, что я не могу правильно вызвать команду запроса.

"?", похоже, обрезан. Но замена, urlencoding, что угодно тоже не срабатывает.

Как мне закодировать «?» в URL или есть какой-то флаг, который я могу попробовать?

Я попробовал system() и buildManager.runCommand(), оба в данном случае делают одно и то же.

%SCRIPT
u=encodeURI("https://ecosia.org/search?q="+cursor.selectedText())
//u=encodeURI("https://ecosia.org/search\?q="+cursor.selectedText())
//u="https://ecosia.org/search\\%3Fq="+cursor.selectedText()
//u="https://ecosia.org/search%3Fq="+cursor.selectedText()
//u="https://ecosia.org/search?q="+cursor.selectedText()
//u="https://ecosia.org/search\?q="+cursor.selectedText()
//buildManager.runCommand("\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\" \""+u+"\"")
system("\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\" \""+u+"\"")

Вот некоторые из комбинаций, которые я пробовал... но ни одна не работает так, как задумано. Результат в журнале выглядит так:

Prozess gestartet: "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" "https://ecosia.org/search

Любая идея приветствуется. Спасибо.

решение1

Я сам нашел ответ и опубликую его для тех, кому это может быть интересно.

Когда я углубился в исходный код buildmanager.cpp:

else if (str.at(i) == QChar('?')) {
if (str.at(++i) == QChar('?')) add = "?";

Это значит, что мой макрос-скрипт работает, когда я делаю следующее:

%SCRIPT
u="https://ecosia.org/search??q="+cursor.selectedText()
system("\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\" \""+u+"\"")

Примечание: в системном вызове "??" становится "?". То же самое для % и @

Теперь я могу искать выделенный текст напрямую. (Я избавился от urlencode, так как он ведет себя не так, как ожидалось, из-за отсутствующего %)

Связанный контент