2012-01-25 85 views
0

我們正在導入從Lotus Notes導出到dxl的項目。有些項目被列爲rawitemdata type='502'。我發現了一些證據,這些是Mime類型,它們是Base64編碼的。這個(http://wenku.baidu.com/view/3d29abcfa1c7aa00b52acb52.html :)的幻燈片31表示他們是RFC822文本(研究這個)?如何解碼Lotus Notes Dxl <rawitemdata type ='502'>?這是Base64嗎? RFC822文本?

<item name='PostedDate'> 
    <rawitemdata type='502'> 
    DgAJAAAACAAEAAIAHgCEPVIAT3MlBERhdGU6IEZyaSwgNyBTZXAgMjAwNyAxMDo1ODoxNyAtMDQwMA== 
    </rawitemdata> 
</item> 

當我嘗試用Ruby解碼,我得到這個(注 '日期......' 十六進制後):

Base64.decode64('DgAJAAAACAAEAAIAHgCEPVIAT3MlBERhdGU6IEZyaSwgNyBTZXAgMjAwNyAxMDo1ODoxNyAtMDQwMA') 
=> "\x0E\x00\t\x00\x00\x00\b\x00\x04\x00\x02\x00\x1E\x00\x84=R\x00Os%\x04Date: Fri, 7 Sep 2007 10:58:17 -040" 

任何想法?我更喜歡Ruby的答案,但會對任何有幫助的事情感到滿意。

+0

你知道是在什麼樣的項目數據?當我解碼數據時,我得到這個 「=R Os%日期:星期五,2007年9月7日10時58分17秒-040。它是TYPE_RFC822_TEXT數據。 (http://www-10.lotus.com/ldd/nd6forum.nsf/ShowMyTopicsAllFlatweb/10d98a803c0b621f852570c2006161ce?OpenDocument) –

+0

我沒有源代碼,只有dxl。如圖所示,rawitemdata預計將成爲PostedDate。我對日期值前面的十六進制字符感到困惑。 –

+0

我無法確切地告訴你rawitemdata中發生了什麼,但我相信TYPE_RFC822_TEXT意味着有兩個存儲值。數據表示來自RFC822數據流的標題,該數據流必須是普通的7位文本 - 即您所看到的「Date:...」部分。但數據也表示數據的存儲二進制值。由於這是PostedDate字段,因此可能會在該數據中使用TIMEDATE結構 - 但這只是8個字節,而且還有更多,並且字節值看起來太低而不能真正成爲TIMEDATE。 –

回答

0

PostedDate是一個standard Notes mail field其中包含郵件留下發件人的郵件文件的時間/日期。由於「Date:」後面的所有內容似乎都是valid RFC822 date,我認爲您可以安全Base64解碼,並將「Date:」後面的所有內容用作PostedDate字段的值,並放棄其餘數據。

(我不知道爲什麼DXL呈現的字段的方式,也許this是相關的,但我不知道。)

+1

由於NSF文件中的原始郵件以MIME格式存儲,因此以DXL方式導出。由於Domino目錄中的發件人位置設置和/或收件人設置,它以這種方式存儲。當郵件以MIME格式存儲時,存儲的筆記中各種與日期相關的標題項目將以RFC822文本格式而不是時間/日期格式存儲。如果您在Notes中檢查MIME格式消息的文檔屬性,則可以看到此內容。 –

+0

有道理。這就是我用MIME呈現富文本字段,產生 AgACAAAAAgBnAAAALwAAAAAAAABDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD0iVVMt QVNDSUkiDQoNCg0KPGJyPjxmb250IHNpemU9MiBmYWNlPSJzYW5zLXNlcmlmIj4wMS8yNS8yMDEy PC9mb250Pg0K ,它解碼爲相同類型的十六進制字符純文本HTML前述本地測試一致內容。 –