Вставка китайских символов в AppleScript - PullRequest
0 голосов
/ 25 февраля 2020

Как вставить текст из китайских иероглифов, используя AppleScript? Все мои попытки заканчиваются "аааа аааааа ааааааа", я пытался найти некоторую информацию об использовании Юникода, но мне это не удалось. Я также пытался изменить язык системы. Это относительно помогло, AppleScript фактически начал вставлять иероглифы, но в конечном результате это не помогло, потому что только 1 иероглиф был напечатан из-за автокоррекции и помощи в наборе текста.

enter image description here

1 Ответ

0 голосов
/ 01 марта 2020

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

set srcIdeo to "你好,朋友!你好嗎?测试消息。" -- text taken from screen shot
--set srcIdeo to the clipboard
tell application "TextEdit"

    -- list all Chinese characters to begin with
    -- set srcIdeo to every character of document "sourceIdeo.txt"
    set allChar to every character of srcIdeo

    -- list unicode id of allChar
    set chList to {}
    repeat with i in allChar
        copy id of i to end of chList
    end repeat
end tell

-- list all Chinese characters to insert into text (doesn't work inside TextEdit tell block)
set chTx to ""
repeat with ch in chList
    character id ch
    set chTx to chTx & character id ch
end repeat
-- set the clipboard to chTx

-- insert into text 
tell application "TextEdit" to set last paragraph of front document to chTx
--tell application "TextEdit" to set last paragraph of front document to the clipboard

(*
Example
allChar {"你", "好", ",", "朋", "友", "!", "你", "好", "嗎", "?", "测", "试", "消", "息", "。"}
chList {20320, 22909, 65292, 26379, 21451, 65281, 20320, 22909, 21966, 65311, 27979, 35797, 28040, 24687, 12290}
chTx "你好,朋友!你好嗎?测试消息。"
*)

По сути, applecript использует 16-битный код de c (base10) для представления шестнадцатеричного кода unicode 4-di git. Таким образом, для первого символа «你», который программа просмотра символов описывает, как показано ниже, код U + 4F60 переводится в «20320», что оказывается прямым преобразованием из шестнадцатеричного в десятичное. Кроме того, он обрабатывает цветовые коды RGB аналогичным образом.

CJK UNIFIED IDEOGRAPH-4F60
Юникод: U + 4F60, UTF-8: E4 BD A0

В appleScript…

id of "你"
character id 20320

Из Руководства по языку AppleScript , 124
Справочник классов> text> Свойства текстовых объектов
https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_classes.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...