【问题标题】:How to decode HEX code to regular text in Apple Script如何将 HEX 代码解码为 Apple Script 中的常规文本
【发布时间】:2018-03-08 22:03:16
【问题描述】:

我在 Mac 上使用 Cultured Code 中的待办事项列表应用程序 Things,当我将任务链接复制到剪贴板时,它最终被编码为 HEX 代码在剪贴板中。当我将它粘贴到文本文件中时没问题 - 然后它显示为解码文本。

但是,我需要在 AppleScript 中使用剪贴板内容,并且难以将其解码为纯文本。

我尝试了多个子例程,但在我的情况下它们不起作用。我在网上找到的大多数示例都处理简单的编码 URL。到目前为止,我的代码可以将例如“0348”正确解码为数字 1000,但我的脚本无法解码编码的 Things 链接(顶部的一长串数字)。 p>

有人可以帮帮我吗?

这是我目前所拥有的:

-- The link to a task in THINGS, encoded: 7468696e67733a2f2f2f73686f773f69643d41463645303746462d394230462d343539332d423143332d313846303337434237363836
-- Above link to the task in THINGS, unencoded: things:///show?id=AF6E07FF-9B0F-4593-B1C3-18F037CB7686
-- Online converter: http://www.unit-conversion.info/texttools/hexadecimal/
-- Number 1000 encoded: 03E8

set theEncodedText to "03E8"
set theDecodedText to (do shell script "perl -e 'printf(hex(\"" & theEncodedText & "\"))'") as string

set theDisplayedText to theDecodedText
display dialog theDisplayedText

谢谢你, 马丁

【问题讨论】:

  • 永远不要生成这样的代码。使用环境变量或其他方式将参数作为参数传递给程序。

标签: perl text applescript decode encode


【解决方案1】:

以下示例 AppleScript 代码是我如何处理设置为variable 一个以 «data url ...» 形式保存到剪贴板的事物 URL link,其中 ... 是十六进制数据。

脚本«data url ...»写入临时文件,读取临时文件,该文件现在是«data url ...»的文本字符串,并将其设置为值 的变量,然后删除临时文件。然后它将 Things URL link 显示为文本字符串,或显示剪贴板不包含“things:///show?id=” URL 链接的消息。

示例 AppleScript 代码

if ((clipboard info) as string) contains "URL" then

    set thingsURL to "/tmp/thingsURL.tmp"

    try
        set f to open for access thingsURL with write permission
        set eof f to 0
        write (the clipboard) to f
        close access f
    on error
        close access f
    end try

    set thingsURLtext to (read thingsURL)
    tell application "System Events" to delete file thingsURL

    display dialog thingsURLtext buttons {"OK"} default button 1

else

    display dialog "The clipboard did not contain a 'things:///show?id=' URL link." buttons {"OK"} default button 1

end if

注意: 示例 AppleScript 代码 就是这样,并没有使用任何其他错误处理 然后显示的内容仅用于显示完成任务的多种方式之一。用户始终有责任根据需要/想要添加/使用适当的错误处理

【讨论】:

  • 感谢您的教程! – 在旁注中,我收到了 Things 应用程序开发人员的回复,他们说他们将让“复制链接”命令在 Things v3.5 的下一次更新中将链接复制为纯文本,而不是放置 HEX 代码像现在一样进入剪贴板。
  • @iLoveCode 我对你发布的问题尝试了这个答案并且它有效,所以它至少给你一个临时解决方案,直到 Things 更新出来。我不能代表您发言,但似乎 user3439894 已成功回答您的问题,并且没有其他竞争性回答。我也不能代表 user3439894,但我认为选择他/她的答案将是一种很好的感谢形式,此外,它还可以帮助其他有类似问题的用户,将他们引导到这里找到可行的解决方案。不过,关于 Things 更新的好消息。
猜你喜欢
  • 2015-10-08
  • 1970-01-01
  • 2013-09-17
  • 2022-09-28
  • 1970-01-01
  • 2017-11-23
  • 2011-12-05
  • 2016-09-11
  • 2011-04-17
相关资源
最近更新 更多