【发布时间】:2018-06-12 14:14:56
【问题描述】:
我想将.ichat 文件(存档的 macOS 消息聊天)中的聊天消息转换为人类可读的形式,如下所示。 (我的谈话都是一对一的,以简化事情!)
- (13:40) 我:你好
- (13:41) 你:你好吗?
- (13:41) 我:太好了,谢谢...
似乎没有执行此操作的现有实用程序,所以我想自己编写,但格式有点神秘,我无法找到任何相关文档。
这些文件充满了奇怪的CF$UID 条目,只是偶尔有几个条目是实际的短信,没有明显的方法可以分辨出哪个人说了什么。
这是一个概述格式的sn-p:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>$archiver</key>
<string>NSKeyedArchiver</string>
<key>$objects</key>
<array>
<string>$null</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>73</integer>
</dict>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>2</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>3</integer>
</dict>
...
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>10</integer>
</dict>
<key>NS.string</key>
<string>Hello, World!</string>
</dict>
【问题讨论】: