Encoding 当文件编码为“时,如何处理DXL filedata元素?”;没有;?

Encoding 当文件编码为“时,如何处理DXL filedata元素?”;没有;?,encoding,lotus-notes,lotus-domino,ibm-doors,ibm-domino,Encoding,Lotus Notes,Lotus Domino,Ibm Doors,Ibm Domino,我试图从导出到DXL(Domino XML模式)的Domino文档中提取附件。对于encoding=“base64”的元素,我可以轻松处理filedata内容。但是,大多数文件都有encoding=“none”-从逻辑上讲,这意味着直接嵌入-但容器没有可读文本,而是包含76个字符行,与base64编码非常相似。它们不是有效的base64或uuencoded信息,也不是我能识别的任何东西。 有人知道IBM称之为“无”的是哪种神秘编码吗? 典型的分段如下所示: <file hosttype='

我试图从导出到DXL(Domino XML模式)的Domino文档中提取附件。对于encoding=“base64”的元素,我可以轻松处理filedata内容。但是,大多数文件都有encoding=“none”-从逻辑上讲,这意味着直接嵌入-但容器没有可读文本,而是包含76个字符行,与base64编码非常相似。它们不是有效的base64或uuencoded信息,也不是我能识别的任何东西。 有人知道IBM称之为“无”的是哪种神秘编码吗? 典型的分段如下所示:

<file hosttype='msdos' compression='none' flags='sign storedindoc' encoding='none' 
name='myfilename.doc' size='50688' storagesize='32519' desiredcompression='huffman'>
<created><datetime dst='true'>20061110T193351,87-02</datetime></created>
<modified><datetime dst='true'>20061110T193351,73-02</datetime></modified><filedata>
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAXgAAAAAAAAAA
EAAAYAAAAAEAAAD+////AAAAAF0AAAD/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////

20061110T193351,87-02
20061110T193351,73-02
0M8R4KGxGueaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
eaaaaaaaaaaad+//aaaaaaf0aaad/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
(它持续了数百行……到)

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
它看起来像某种MIME编码,但不是base64。当解码器失败时,位数不相加。(是的,我从解析器提要中删除了NLs。)

如何破译一些根本没有编码的东西?(根据IBM magi的说法。)

[后记]
我意识到该文档不符合DXL DTD,即它是可解析的,但不能验证。此外,尽管encoding=“none”,但filedata内容实际上是base64,尽管不一定在末尾填充“=”。此外,XMLSAX解析器将文本内容的块而不是整行传递给我。因为base64需要4个字符的倍数来操作(生成3个字节),所以它会把解码搞砸。如果我忽略DTD并强制进行仔细缓冲的base64解码,即使@encoding!=“base64”(由DTD提供),那么一切都很顺利。看起来IBM并不在乎遵循自己的DTD

看看这个问题的答案:。问题本身包含一个指向页面的链接,该页面显示一个编码为class='none'的文件对象。答案表明,它实际上是base64数据,但它的含义不止这些。我让aleady检查了这一点,这与将专有Notes位图图像转换为GIF有关。这里的问题是,该块不是链接(这些是短头),也不是base64编码的块。请查看此问题的答案:。问题本身包含一个指向页面的链接,该页面显示一个编码为class='none'的文件对象。答案表明,它实际上是base64数据,但它的含义不止这些。我让aleady检查了这一点,这与将专有Notes位图图像转换为GIF有关。这里的问题是,块不是链接(这些是短头),也不是base64编码的块。
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAA
</filedata></file>