【问题标题】:Applescript: Save Word documents as plaintext while retaining accentsApplescript:将 Word 文档另存为纯文本,同时保留重音符号
【发布时间】:2013-07-12 04:28:46
【问题描述】:

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

目前正在使用的线路:

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

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

applescript Word 字典提到:

[文本编码无符号整数]:保存为文本文件时使用的文本编码

我不知道这是否是我缺少的部分或如何使用它(是否有指定西方 Mac OS 罗马编码的集合整数?)

有人有什么想法吗?

【问题讨论】:

  • FWIW 用于在 VBA 中工作的编码的“另存为”关键字似乎在 applescript 中不起作用。例如,对于 UTF-8 编码,Word VBA 记录 FileFormat:=wdFormatText, Encoding:=65001(Western (Mac Os Roman) 的值为 10000)。但是等效的applescript“文件格式格式文本文本编码65001”不起作用。 “文件格式格式 Unicode 文本”等也没有。此外,当 Word 通过 VBA 或 UI 保存为 UTF-8 时,它会在开头保存一个字节顺序标记(“BOM”),打开文件时它无法识别。它确实可以识别 16 位 Unicode 格式的 BOM。
  • 感谢 Stefan 和 bibadiak 提供的见解。使用 textutil shell 脚本,我现在可以正确保存重音符号(它们在我在 textedit 中打开文件时出现)但是,当我通过 MS Word 打开文本文件时,仍然存在问题(即 é 变成正常的 e 现在正在切换其他字符,' 变成 Äô) - 我是编码新手,但我认为它正在尝试将其作为不同类型打开。

标签: ms-word applescript


【解决方案1】:

试试:

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

【讨论】:

    【解决方案2】:

    这是对您以“感谢 Stefan 和 bibadiak”开头的评论的回应

    .txt 文件格式是没有通用的方法来指定文件内部文件的编码,所以要么应用程序必须猜测,要么你必须知道编码并且应用程序必须让你告诉它。

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

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

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

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

    c。如果您的所有字符都可以使用 Mac OS Roman 进行编码,请使用例如

    textutil -convert txt -encoding 30 
    

    要保存,请确保您只使用该字符集,然后使用 Word 重新打开。 (30 是苹果 NSString 值 NSMacOSRomanStringEncoding 的值)。我认为 textutil 将无法转换包含 MacOS 罗马字符集之外的字符的文档。

    【讨论】:

      猜你喜欢
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多