使用 body.getAsync 时西里尔字符损坏

Cyrillic characters are corrupted when using body.getAsync

我开发了一个简单的任务窗格加载项来测试西里尔字符,但是当使用 body.getAsync() 时,西里尔字符似乎编码不正确。

是否有从电子邮件正文中获取西里尔文 html 的解决方法?这是我使用的代码:

var message = Office.context.mailbox.item;
message.body.getAsync(Office.CoercionType.Html, function (result) {
    if (result.status === Office.AsyncResultStatus.Succeeded) {
        $("#gridResult").html(result.value);
    }
});

这是我得到的结果。所有的西里尔字母都乱七八糟。

编辑

我通过 Visual Studio 调试器 运行 代码,并在调用 .html() 之前在 result.value 上设置一个断点。损坏的值是可见的。使用 F12 开发人员工具附加到 IE 进程时会发生同样的事情:

感谢您报告此问题。这是 Outlook 桌面版的回归,修复程序将在大约两个月内到达客户手中。 同时,解决方法是使用 Office.CoercionType.Text

调用 API
var message = Office.context.mailbox.item;
message.body.getAsync(Office.CoercionType.Text, function (result) {
    if (result.status === Office.AsyncResultStatus.Succeeded) {
        $("#gridResult").html(result.value);
    }
});

或者在 OWA (Outlook on Web) 中使用您的插件。

已发现这是一个错误。它将在即将发布的 C2R 构建更新中得到修复。暂时而言,如果构建是在 16.0.7117.1000 之后,则应该已修复。此内部版本号不是将要出现的确切编号,但是当更新发布时,如果该版本号在该版本之后,则应该进行修复。

在实际补丁发布之前,我无法确认此修复是否会成功。

MSI Outlook 2016 和 MSI Outlook 2013 的修复将在之后进行。一旦计划发布,我将更新这些更新的知识库和补丁。