首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二进制plist中的格式化文本编码

二进制plist中的格式化文本编码
EN

Stack Overflow用户
提问于 2011-02-10 07:09:23
回答 1查看 744关注 0票数 0

我正在尝试编写一些脚本来编辑二进制plist文件。plist描述包含在DVD studio pro文件中的对象。似乎DVD studio pro中的文本框在plist中被编码为描述文本串及其格式化的base64数据。我似乎想不出如何理解这些数据。理想情况下,我希望能够更改文本字符串,但不能更改格式。下面似乎描述了一个文本框,上面写着“菜单标题在这里”。有两个字符串,一个键称为"dictionary“,另一个称为"string";这两个字符串都是CFData。你知道如何解析它或将它转换成我可以直接编辑的格式吗?我一直在尝试用可可编写一个小的转换器,但是还没有成功。

代码语言:javascript
复制
<dict>
                                            <key>Dictionary</key>
                                            <data>
                            BAtzdHJlYW10
                            eXBlZIHoA4QB
                            QISEhAxOU0Rp
                            Y3Rpb25hcnkA
                            hIQITlNPYmpl
                            Y3QAhYQBaQaS
                            hISECE5TU3Ry
                            aW5nAZSEASsG
                            TlNGb250hpKE
                            hIQGTlNGb250
                            HpSVJIQFWzM2
                            Y10GAAAAGgAA
                            AP/+TAB1AGMA
                            aQBkAGEARwBy
                            AGEAbgBkAGUA
                            AACEAWYVhAFj
                            AJsBmwCbAIaS
                            hJaXB05TQ29s
                            b3KGkoSEhAdO
                            U0NvbG9yAJSb
                            AYQEZmZmZoPz
                            8nI/g/Dvbz+D
                            7OtrPwGGkoSW
                            lwtOU0V4cGFu
                            c2lvboaShISE
                            CE5TTnVtYmVy
                            AISEB05TVmFs
                            dWUAlIQBKoSa
                            moNHx9c9hpKE
                            lpcNTlNPYmxp
                            cXVlbmVzc4aS
                            hJ6ghIQBZKEA
                            hpKElpcQTlNQ
                            YXJhZ3JhcGhT
                            dHlsZYaShISE
                            EE5TUGFyYWdy
                            YXBoU3R5bGUA
                            lIQEQ0NAUwAA
                            hQCGkoSWlxFO
                            U0JhY2tncm91
                            bmRDb2xvcoaS
                            hJubA4QCZmYA
                            AIaG
                                            </data>
                                            <key>String</key>
                                            <data>
                            BAtzdHJlYW10
                            eXBlZIHoA4QB
                            QISEhBJOU0F0
                            dHJpYnV0ZWRT
                            dHJpbmcAhIQI
                            TlNPYmplY3QA
                            hZKEhIQITlNT
                            dHJpbmcBlIQB
                            Kw9OZW51IFRp
                            dGxlIEhlcmWG
                            hAJpSQEPkoSE
                            hAxOU0RpY3Rp
                            b25hcnkAlIQB
                            aQWShJaWDU5T
                            T2JsaXF1ZW5l
                            c3OGkoSEhAhO
                            U051bWJlcgCE
                            hAdOU1ZhbHVl
                            AJSEASqEhAFk
                            nQCGkoSWlgtO
                            U0V4cGFuc2lv
                            boaShJuchIQB
                            Zp6DR8fXPYaS
                            hJaWEE5TUGFy
                            YWdyYXBoU3R5
                            bGWGkoSEhBBO
                            U1BhcmFncmFw
                            aFN0eWxlAJSE
                            BENDQFMAAIUA
                            hpKElpYGTlNG
                            b250hpKEhIQG
                            TlNGb250HpSZ
                            JIQFWzM2Y10G
                            AAAAGgAAAP/+
                            TAB1AGMAaQBk
                            AGEARwByAGEA
                            bgBkAGUAAACe
                            FYQBYwCjAaMA
                            owCGkoSWlgdO
                            U0NvbG9yhpKE
                            hIQHTlNDb2xv
                            cgCUowGEBGZm
                            ZmaD8/JyP4Pw
                            728/g+zraz8B
                            hoaG
                                            </data>
                                        </dict>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-17 19:20:32

这是一个base64编码的NSArchiver归档文件。您需要先解码base64,然后再使用[NSUnarchiver unarchiveObjectWithData:]。上面的“字典”条目在解码后如下所示(使用Python语法,因为我使用了pyObjC):

代码语言:javascript
复制
{
    NSBackgroundColor = "NSCalibratedWhiteColorSpace 0 0";
    NSColor = "NSCalibratedRGBColorSpace 0.94902 0.937255 0.921569 1";
    NSExpansion = "0.1053606";
    NSFont = "\"LucidaGrande 21.00 pt. P [] (0x103110b60) fobj=0x103110c30, spc=6.64\"";
    NSObliqueness = 0;
    NSParagraphStyle = "Alignment 0, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n    28L,\n    56L,\n    84L,\n    112L,\n    140L,\n    168L,\n    196L,\n    224L,\n    252L,\n    280L,\n    308L,\n    336L\n), DefaultTabInterval 0, Blocks (null), Lists (null), BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0.05, HeaderLevel 0";
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4951686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档