【发布时间】:2016-03-30 21:35:49
【问题描述】:
我正在尝试解码从 plist(属性列表)文件的 “数据”标签中提取的字符串。从Apple官方开发者网站,我了解到
“数据字节在 和 标签之间进行 base-64 编码。”
问题:
示例输入:
YnBsaXN0MDDUAQIDBAUILi9UJHRvcFgkb2JqZWN0c1gkdmVyc2lvblkkYXJjaGl2ZXLRBgdUcm9vdIABpwkKERUdIyhVJG51bGzTCwwNDg8QXE5TQXR0cmlidXRlc1hOU1N0cmluZ1YkY2xhc3OABIACgAbSDRITFFlOUy5zdHJpbmeAA1JIadIWFxgcWCRjbGFzc2VzWiRjbGFzc25hbWWjGRobXxAPTlNNdXRhYmxlU3RyaW5nWE5TU3RyaW5nWE5TT2JqZWN0XxAPTlNNdXRhYmxlU3RyaW5n0x4NHyAhIlpOUy5vYmplY3RzV05TLmtleXOggAWg0hYXJCeiJSZcTlNEaWN0aW9uYXJ5WE5TT2JqZWN0XE5TRGljdGlvbmFyedIWFyktoyorLF8QGU5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmdfEBJOU0F0dHJpYnV0ZWRTdHJpbmdYTlNPYmplY3RfEBlOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nEgABhqBfEA9OU0tleWVkQXJjaGl2ZXIACAARABYAHwAoADIANQA6ADwARABKAFEAXgBnAG4AcAByAHQAeQCDAIUAiACNAJYAoQClALcAwADJANsA4gDtAPUA9gD4APkA / gEBAQ4BFwEkASkBLQFJAV4BZwGDAYgAAAAAAAACAQAAAAAAAAAwAAAAAAAAAAAAAAAAAAABmg == P>
在线base64 decoder:生成的输出
bplist00./T$topX$objectsX$versionY$archiverTroot
(U$null\NSAttributesXNSStringV$class YNS.stringRHiX$classesZ$classname_NSMutableStringXNSStringXNSObject_NSMutableString !”ZNS.objectsWNS.keys$'%&\NSDictionaryXNSObject\NSDictionary)-*+,_NSMutableAttributedString_NSAttributedStringXNSObject_NSMutableAttributedString_NSKeyedArchiver(25:
我的代码生成的输出:
bplist00./T$topX$objectsX$versionY$archiverTroot
这是我解码提取字符串的代码:
String result = new String((Base64.decode(extracted_string.getBytes(“UTF-8"), Base64.DEFAULT)), “UTF-8”));
我尝试过使用 Base64.decode 函数的不同标志,但它们都没有帮助产生与网络工具相同的输出。
我有以下问题:
Android base64 API 是否存在导致上述问题的限制?
是否有任何可供我使用的替代 Android API?
对于这个问题的任何建议,我将不胜感激。提前谢谢你。
【问题讨论】:
-
尝试检查变量结果的值。我认为它有 '\n' 所以控制台只显示第一行。
-
感谢您的回复,但我在控制台上发现了相同的输出,结果可变。