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

Outlook 使用body.getAsync时西里尔字符已损坏,outlook,outlook-addin,office-js,outlook-web-addins,Outlook,Outlook Addin,Office Js,Outlook Web Addins,我开发了一个简单的任务窗格外接程序,用于测试西里尔字符,但在使用body.getAsync()时,西里尔字符似乎编码不正确 是否有从电子邮件正文中获取西里尔文字html的解决方法?以下是我使用的代码: var message = Office.context.mailbox.item; message.body.getAsync(Office.CoercionType.Html, function (result) { if (result.status === Office.Async

我开发了一个简单的任务窗格外接程序,用于测试西里尔字符,但在使用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);
    }
});
这是我得到的结果。所有西里尔文字都乱七八糟。

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

感谢您报告此问题。这是Outlook Desktop的一次倒退,修复程序将在大约两个月内送达客户端。 与此同时,解决方法正在使用Office.impressionType.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之后,则应该修复它。此版本号不是将出现的确切版本号,但是当更新出来时,如果版本号在该版本之后,则修复程序应该在

我不能确认,这个修复程序将使它,直到实际的补丁出来了


2016年MSI Outlook和2013年MSI Outlook的修复程序将随后发布。一旦这些更新计划发布,我将使用KB和补丁进行更新。

为什么您认为getAsync会破坏符号?可能是
$(“#gridResult”).html中的问题吧
?我为Word创建了一个非常类似的外接程序,它使用Word 2016 API执行相同的操作。我对
$(“gridResult”).html()进行了相同的调用,它没有损坏符号。因此,我相当肯定在getAsync()调用过程中会出现问题。您确定gridResult所在的html具有正确的编码吗?我仔细检查,JavaScript文件和html文件都使用“Unicode(带签名的UTF-8)-代码页65001”保存电子邮件消息的内容类型也应该使用字符集,最好在html代码中包含元标记,并使用正确的编码更新此文章的固定版本。修复程序实际上是二进制的,而不是Outlook。因此,MSI的固定版本是:Word 2016 MSI-16.0.4470.1000或更高版本Word 2013 MSI-15.0.4868.1000或更高版本再次强调,版本#将无法正确对齐,但任何比这些版本更高的版本都应该有固定版本。