Applescript:将Word文档保存为纯文本,同时保留重音符号

时间:2013-07-12 04:28:46

标签: ms-word applescript

我正在尝试将Word文档保存为纯文本文档。目前,有时候重音变成其他符号(通常是相同的符号,例如:é变成theta)。其他时候它工作正常。我该如何防止这种情况?

目前正在使用该行:

另存为活动文档文件名FullDocPath文件格式格式Unicode文本

当我遇到此错误时,我可以使用对话框保存文档(选择Western Mac OS Roman编码...来解决问题。

AppleScript Word字典提到:

[text encoding unsigned integer]:保存为文本文件时使用的文本编码

我不知道这是否是我遗失的部分或如何利用它(是否有一个指定Western Mac OS Roman编码的整数?)

有人有什么想法吗?

2 个答案:

答案 0 :(得分:2)

尝试:

set wordDoc to choose file
do shell script "textutil -convert txt " & quoted form of POSIX path of (wordDoc as text)

查看StefanK's solution using textutil

答案 1 :(得分:0)

这是对你的评论开始的回复“谢谢Stefan和bibadiak”

使用.txt文件格式是没有普遍使用的方法来指定文件内文件的编码,因此应用程序必须猜测,或者你必须知道编码,应用程序必须告诉你它。

AFAIK如果在使用textutil将.doc或.docx格式转换为文本时未指定输出编码,则获得UTF-8。但是,当您尝试以编程方式或在UI中打开它时,Mac Word似乎无法识别。

所以我认为你需要做一些以下的混合:

一个。保存并使用使用16位Unicode编码的格式。如果保留BOM,Word应该认识到

湾保存到UTF并在其他地方使用UTF,但在Mac Word中重新打开文档之前使用textutil转换回(例如).docx

℃。如果您的所有角色都可以使用Mac OS Roman编码,请使用例如

textutil -convert txt -encoding 30 

保存,确保您只使用该字符集,并使用Word重新打开。 (30是APple NSString值NSMacOSRomanStringEncoding的值)。我认为textutil将无法转换包含MacOS Roman集之外的字符的文档。