我在OS X 10.10.5上运行的工作流程中有以下AppleScript:
on run {input, parameters}
tell application "Mail"
set _sel to get selection
set _links to {}
repeat with _msg in _sel
set _messageURL to _msg's message id
set _messageTitle to _msg's subject
end repeat
set cmd to "\"{\\rtf1\\ansi\\ansicpg1252\\cocoartf949\\cocoasubrtf270{\\fonttbl
\\f0\\fswiss\\fcharset0 Helvetica;}{\\colortbl;\\red255\\green255\\blue255;}
\\margl1440\\margr1440\\vieww9000\\viewh8400\\viewkind0\\pard\\tx720\\tx1440
\\tx2160\\tx2880\\tx3600\\tx4320\\tx5040\\tx5760\\tx6480\\tx7200\\tx7920\\tx8640
\\ql\\qnatural\\pardirnatural{\\field{\\*\\fldinst{HYPERLINK \"message:///%3c" &
_messageURL & "%3e\"}}{\\fldrslt\\f0\\fs28 \\cf0 \"" & _messageTitle & "\"}}}\""
do shell script "/bin/bash -c 'echo " & cmd & " | pbcopy -Prefer rtf'"
end tell
return input
end run
该脚本能够创建一个邮件消息的RFT链接,我可以从其他地方的剪贴板复制。但是,当电子邮件的主题包含非ASCII字符时,脚本无法处理它们。例如,给出以下西班牙语主题(可以翻译为我将于2015年9月7日星期一在萨拉戈萨)
Re: Estaré en zaragoza el lunes 7 sept 2015
要粘贴的文字是:
Re: Estaré en zaragoza el lunes 7 sept 2015
我想我必须将_messageTitle
的值编码为utf-8
到ansicpg1252
,但我不确定这个猜测,我找不到发布此问题的帖子。< / p>
答案 0 :(得分:1)
正如您猜测的那样,您需要转换输出。这是一个更复杂问题的简单示例:
on run
set _messageTitle to "Résolu"
set fullCommand to "/bin/bash -c 'echo " & _messageTitle & "'" & " | pbcopy"
do shell script fullCommand
end run
在粘贴时,重音é搞砸了。
一种解决方案是运行echo
到iconv
:
on run
set _messageTitle to "Résolu"
set fullCommand to "/bin/bash -c 'echo " & _messageTitle & "'" & " | iconv -t MACROMAN -f UTF8-MAC | pbcopy"
do shell script fullCommand
end run
在粘贴时,重音é被正确重音。
请注意,您可能需要使用不同的(-t
)和(-f
)编码,具体取决于您的具体情况。