Word文档格式的解码分析

时间:2022-10-03 05:43:53

文章原创,转载请注明出处

最近发现从网上复制粘贴到一个word文档中的奇特的格式问题:浏览器网页上是正常的,如左图,可是粘贴到word中则成右图那样,行首出现了个奇怪的符号:

Word文档格式的解码分析Word文档格式的解码分析

,不知何故,而且无论如何清除格式也去不掉:

Word文档格式的解码分析

于是决定看看word文档是怎么编码的。

新建一个word文档,输入内容如下:

Word文档格式的解码分析

保存之后用UitrlEdit以二进制打开保存的一个word文档,居然发现文件首为PK开头,那说明是就一个压缩文件包了,尝试将该word文档的后缀改为.zip,然后用解压缩软件居然果然能够正常解压缩,得到如下图所示的一些文件:

Word文档格式的解码分析

[Content_Types].xml文件中记录这个文件夹下所有文件的清单:

Word文档格式的解码分析

打开docProps文件夹如下图所示:

Word文档格式的解码分析

App.xml文件中的内容:

Word文档格式的解码分析

Core.xml中的信息就是通常我们直接文件右键得到的文件信息了

Word文档格式的解码分析

打开word文件夹就看到该文档的核心内容了:

Word文档格式的解码分析

为了解决自己的问题个人是对document.xml文件感兴趣了,打开之

Word文档格式的解码分析

绿色圆圈中的字符就是自己在该word文档中输入的字符内容了“132132453书写规范采用和”居然被分成了两个部分分别标记和保存了。整个文件是各种标记的集合,包含了每部分字符所用的字体和对应的格式。用户字符在文档正文“w:body”标记之中并且以“w:t”标记分割保存,“w:pgMar”标记记录了字符串的对齐格式吧,应该是以像素单位来定位的,其他还有“w:gutter”分割线信息,“w:cols w:space”文档列信息,“w:rFonts”字体信息等等。

接着将有奇怪字符的字符串保存在一个新建的word文档中,清除所有的格式,如下

Word文档格式的解码分析

保存并以压缩文件包打开分析其内容,发现原来字符串前面那个标记是一个书签符号:<w:bookmarkStartw:id="0" w:name="t1"/><w:bookmarkEndw:id="0"/>

Word文档格式的解码分析

所以要去除那个符号就比较好办了,直接鼠标定位到那个符号处然后通过word的“插入”菜单中的“书签”按钮,得到书签编辑对话框:

Word文档格式的解码分析

然后点击删除按钮就可以去掉那个记号了,结果如下图所示:

Word文档格式的解码分析

看来通过对word文档的分析,了解了其编码和组成对于以后恢复损坏的word文档或者对word文档中的数据进行分析处理也会有帮助的。