Ruby 修复OSX Mountain Lion的osascript剪贴板

Ruby 修复OSX Mountain Lion的osascript剪贴板,ruby,applescript,osx-mountain-lion,osascript,Ruby,Applescript,Osx Mountain Lion,Osascript,在我的Ruby应用程序中,很长一段时间以来,我一直使用以下函数写入剪贴板: def pbcopy(text) IO.popen("osascript -e 'set the clipboard to do shell script \"cat\"'","w+") {|pipe| pipe << text} end def-pbcopy(文本) IO.popen(“osascript-e”将剪贴板设置为执行shell脚本\“cat\”,“w+”){| pipe | pipe我刚刚

在我的Ruby应用程序中,很长一段时间以来,我一直使用以下函数写入剪贴板:

def pbcopy(text)
  IO.popen("osascript -e 'set the clipboard to do shell script \"cat\"'","w+") {|pipe| pipe << text}
end
def-pbcopy(文本)

IO.popen(“osascript-e”将剪贴板设置为执行shell脚本\“cat\”,“w+”){| pipe | pipe我刚刚尝试了这个方法,它可以很好地处理UTF-8字符:

def pbcopy(text)
  IO.popen("pbcopy", "w+") {|pipe| pipe << text}
end

pbcopy "smörgåsbord"
puts `pbpaste`
def-pbcopy(文本)
IO.popen(“pbcopy”,“w+”{| pipe | pipe
do shell脚本“cat”
似乎不再返回STDIN

您可以在运行时使用
处理程序
获取参数。
{input,parameters}
表单似乎只在自动机中工作

system("osascript", "-e", "on run {input}
set the clipboard to input
end", "あä")
您还可以设置:

IO.popen(“\uu CF\u USER\u TEXT\u ENCODING=$UID:0x8000100:0x8000100 pbcopy”,“w”){i|

当我在10.8上尝试将文本粘贴到文本视图时,字符仍然杂乱无章。如果我粘贴到TextEdit或Chrome地址字段中,则不适用于我。可能是Ruby的不同版本(我适用于1.9.3)或者本地环境。我也在10.8上。您提供的第一个示例似乎不起作用-OSX ML中的剪贴板上没有任何结果。@StianHåklev您是对的;
运行时{input}
缺少花括号。
IO.popen("__CF_USER_TEXT_ENCODING=$UID:0x8000100:0x8000100 pbcopy", "w") { |i|
  i << "あä"
}