在学习OmniFocus 入门与进阶 - 少数派教程中,了解到了一个 Applescript 脚本Weekly project report generator(周报生成器)。这个脚本可以将 OmniFocus 中前七天活跃的项目以及完成的动作导出成为一个.md文件。这样子,可以大大减轻周回顾时回忆本周完成任务的压力,也可以将生成的文本粘贴到周报中使用。
但是当我第一次运行这个脚本时,生成的文件中所有的中文字符都变成了问号。

由于,之前没有接触过中文显示为问号的问题。所以,与少数派教程的作者联系,他很快给我回复了一份邮件,并给出两个建议。

按照邮件中的建议,我进行了下面三个尝试。
Sublime Text中安装转化编码方式的插件ConvertToUTF8,最终发现无法识别出生成文件的默认编码。
使用系统自带的文本编辑打开时,还是显示编码错误。
利用homebrew安装了enca软件,使用enca -L zh_CN file无法检测出文件的编码方式。
无奈这些方式都没有找出问题的所在,只好打开脚本编辑器,查看这个脚本是怎么写的。
如下图所示,该脚本将需要输出的字符串指定为Unicode text格式,用write将这个字符串写进文本中。

根据之前的编程经验,输出文本一般都能指定编码方式。所以又用Dash来查看 AppleScript 中Write的相关语法。

最终,找到as可以用来指定编码方式,成功解决乱码问题。

网友评论