我有一个将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中获取这些字符的正确方法:
- 请勿使用Symbol或其他字体来表示符号;Unicode可以包含它们。
- 在您的代码中,使用自定义映射函数将0字符映射回它们的Unicode等效值,然后将它们替换为从Word接收的字符串。
#2的实现:
var input = "Test Math ";
var output = input.Replace("uF0C1", "u2287");
Console.WriteLine(output);
输出:
测试数学