【问题标题】:Using "msoEncodingUTF8" with Win32::OLE in a perl script在 perl 脚本中使用“msoEncodingUTF8”和 Win32::OLE
【发布时间】:2019-05-07 11:24:51
【问题描述】:

我有一个将 Word 文档保存为 HTML 的 Perl 脚本。 以下代码有效:

use strict;
use Win32::OLE::Const 'Microsoft Word';
[...]
$go_word_doc->SaveAs2({
    FileName => $gs_html_name,
    FileFormat => wdFormatFilteredHTML
    });

为了以 UTF-8 对输出文件进行编码,我以这种方式转换了我的命令:

$go_word_doc->SaveAs2({
    FileName => $gs_html_name,
    FileFormat => wdFormatFilteredHTML,
    Encoding => msoEncodingUTF8
    });

问题是“msoEncodingUTF8”被视为一个裸词,我无法在任何地方找到我应该为它添加的内容。

有人可以帮忙吗? 提前致谢。

【问题讨论】:

标签: perl utf-8 ms-word win32ole


【解决方案1】:

MsoEncoding Enum 为 Windows 代码页命名。 msoEncodingUTF8 是 UTF-8 代码页的名称,65001

use constant msoEncodingUTF8 => 65001;

【讨论】:

  • 我终于通过“使用 Win32::OLE::Const 'Microsoft Office [0-9.]+ Object Library';”得到了解决,但你的建议也有效。谢谢。
【解决方案2】:

以下命令将为您创建msoEncodingUTF8(和其他常量):

use Win32::OLE::Const 'Microsoft Office [0-9.]+ Object Library';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    相关资源
    最近更新 更多