Applescript JXA击键不适用于特殊字符

Applescript JXA击键不适用于特殊字符,applescript,javascript-automation,Applescript,Javascript Automation,我正在尝试设置一个简单的Apple JXA脚本来编写著名的耸肩表情符号,它模拟我猜的按键。我尝试过的每一件事都会产生这样的结果。我假设,因为我用击键来模拟按键,而我没有日文键盘,所以我总是会得到它。也许我应该把字符串复制到剪贴板上 以下是我目前的代码: // Shrug Script // ¯\_(ツ)_/¯ // // contains special character: // ツ // KATAKANA LETTER TU // Unicode: U+30C4, UTF-8: E3 83

我正在尝试设置一个简单的Apple JXA脚本来编写著名的耸肩表情符号,它模拟我猜的按键。我尝试过的每一件事都会产生这样的结果。我假设,因为我用击键来模拟按键,而我没有日文键盘,所以我总是会得到它。也许我应该把字符串复制到剪贴板上

以下是我目前的代码:

// Shrug Script
// ¯\_(ツ)_/¯
//
// contains special character:
// ツ
// KATAKANA LETTER TU
// Unicode: U+30C4, UTF-8: E3 83 84

// thought maybe I needed to decode it ¯\_(ツ)_/¯
function decode_utf8(s) {
  return decodeURIComponent(escape(s));
}

// this is the newer "Script" aka Javascript way
var sysEvents = Application('System Events');

// this didn't work:
// sysEvents.keystroke("¯\\_(ツ)_/¯");

// this doesn't work either
sysEvents.keystroke("¯\\_("+ decode_utf8("\xE3\x83\x84") +")_/¯");

好的,所以把它添加到我的剪贴板上,然后立即粘贴就容易多了。这不是对我问题的直接回答,但最终结果是我想要的

Apple脚本版本:

# Shrug Script
# ¯\_(ツ)_/¯
#
# contains special character:
# ツ
# KATAKANA LETTER TU
# Unicode: U+30C4, UTF-8: E3 83 84

set the clipboard to "¯\\_(ツ)_/¯"
tell application "System Events" to keystroke "v" using command down
JXA版本:

var app = Application.currentApplication()
    app.includeStandardAdditions = true
var seApp = Application('System Events')

// set current app's clipboard  
app.setTheClipboardTo("¯\\_(ツ)_/¯")
// paste!
seApp.keystroke('v', { using: 'command down' });

我强烈推荐这类任务的服务,因为它们几乎可以在任何应用程序中直接操作文本;不需要像GUI脚本这样的乱七八糟的东西。在Automator中创建一个新服务非常容易,该服务将输出一段文本,并且您可以在完成后将其绑定到系统首选项中的键盘快捷键。下面是一个您可以轻松适应的示例:


我以前做过一个服务,但不知道为什么我没有考虑过。我也要试试这个。谢谢