无法在 C# Microsoft.Office.Interop.Word 库中获取从单词到 xml 的确切符号转换/符号



我有一个将Microsoft Word文件转换为xml文件的程序。但是当Word文件由insert ->符号窗口,字体为" symbol "程序不能正确转换它。所以我得到的不是正确的符号而是"("每一个符号。甚至当我试图粘贴这些符号在这里似乎这种方式:••我们使用Winwordcontrol.document.application.selection.range来选择行。这个类有Text, First等方法。它将选定的行作为字符串返回给我。当程序尝试将选定的行转换为xml时,它返回"("而不是插入Word的符号。其余行被正确转换。

输入图片描述

我试图获取这些符号的Unicode,但它返回给我的是"("象征。

Symbol字体中的/字符假装具有十进制码位164 (0xA4),但Word以不同的方式保存它,即:

<w:sym w:font="Symbol" w:char="F0A4"/>

参见MS Word:获取插入符号的实际ASCII码。它也被这样复制,作为一个Unicode字符在私有使用区域(从F0和all开始)。

幼稚的解决方案,因为我不知道从XML中获取这些字符的正确方法:

  1. 请勿使用Symbol或其他字体来表示符号;Unicode可以包含它们。
  2. 在您的代码中,使用自定义映射函数将0字符映射回它们的Unicode等效值,然后将它们替换为从Word接收的字符串。

#2的实现:

var input = "Test Math ";
var output = input.Replace("uF0C1", "u2287");
Console.WriteLine(output);

输出:

测试数学

最新更新