Получить заголовок окна с помощью AppleScript в Unicode - PullRequest
2 голосов
/ 03 марта 2011

Я столкнулся со следующей проблемой: у меня есть скрипт, который извлекает заголовок из окна Firefox:

tell application "Firefox"
   if the (count of windows) is not 0 then
       set window_name to name of front window
   end if
end tell

Он работает хорошо, если заголовок содержит только английские символы, но когда заголовок содержитнекоторые символы, не входящие в ASCII (в моем случае кириллица), производят мусор utf-8.Я немного проанализировал этот мусор, и кажется, что мой кириллический символ преобразован в Utf-8 без какой-либо озабоченности по поводу кодовой страницы, т.е. вместо использования кириллической кодовой страницы для преобразования он вообще использует не кодовые страницы, и у меня есть текст utf-8 с символамиотличается от заголовка окна.

Мой вопрос таков: как я могу получить заголовок окна в utf-8 напрямую без какого-либо преобразования?Я могу достичь этой цели с помощью AXAPI, но я хочу достичь этого с помощью AppleScript, потому что AXAPI требует, чтобы в системе был включен какой-либо параметр.

UPD: Он отлично работает в редакторе AppleScript.Но я компилирую его с помощью кода C ++ с помощью OSACompile -> OSAExecute -> OSADisplay Я не знаю, что такое редактор AppleScript, так что, может быть, этоимеет некоторую внутреннюю информацию о том, как кодировать символы

1 Ответ

1 голос
/ 04 марта 2011

Я нашел ответ, когда написал обновление.Иногда полезно задать вопрос, чтобы лучше его понять :) Так что для будущих искателей: если вы хотите использовать результат выполнения скрипта в юникоде, вы должны предоставить typeUnicodeText для OSADisplay тогда у вас будет результат в UTF-16LE в результате AEDesc

...