2011-03-03 27 views
2

我已經堅持了以下問題: 我有一個腳本這是檢索標題形成Firefox窗口:獲取窗口標題使用AppleScript以Unicode

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編輯器的膽量,所以也許它如何編碼字符一些內部消息

+0

你可以舉個例子網址嗎?我剛剛在每個網站上都試過了你的腳本,這個腳本是爲了一個'site:ru'谷歌搜索而出現的,它對我來說似乎很好。 – Asmus 2011-03-03 20:31:30

+0

也爲我工作。 – 2011-03-04 00:41:09

+0

您是否在AppleScript編輯器中執行它? – ixSci 2011-03-04 07:43:10

回答

1

我在寫更新時找到了答案。有時候可以問一個問題,以便更好地理解:) 所以對於未來的搜索者:如果你想使用unicode結果的腳本執行,你應該提供typeUnicodeTextOSADisplay那麼你將會得到結果UTF-16LE中的結果AEDesc