Android API

时间:2015-12-24 12:26:03

标签: android base64 plist

我正在尝试解码从plist(Property List)文件的“data”标签中提取的字符串。从官方的Apple开发者网站,我明白了

  

“数据字节在< data>之间进行base-64编码。和< / data>标签“。

问题:

示例输入:

  

YnBsaXN0MDDUAQIDBAUILi9UJHRvcFgkb2JqZWN0c1gkdmVyc2lvblkkYXJjaGl2ZXLRBgdUcm9vdIABpwkKERUdIyhVJG51bGzTCwwNDg8QXE5TQXR0cmlidXRlc1hOU1N0cmluZ1YkY2xhc3OABIACgAbSDRITFFlOUy5zdHJpbmeAA1JIadIWFxgcWCRjbGFzc2VzWiRjbGFzc25hbWWjGRobXxAPTlNNdXRhYmxlU3RyaW5nWE5TU3RyaW5nWE5TT2JqZWN0XxAPTlNNdXRhYmxlU3RyaW5n0x4NHyAhIlpOUy5vYmplY3RzV05TLmtleXOggAWg0hYXJCeiJSZcTlNEaWN0aW9uYXJ5WE5TT2JqZWN0XE5TRGljdGlvbmFyedIWFyktoyorLF8QGU5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmdfEBJOU0F0dHJpYnV0ZWRTdHJpbmdYTlNPYmplY3RfEBlOU011dGFibGVBdHRyaWJ1dGVkU3RyaW5nEgABhqBfEA9OU0tleWVkQXJjaGl2ZXIACAARABYAHwAoADIANQA6ADwARABKAFEAXgBnAG4AcAByAHQAeQCDAIUAiACNAJYAoQClALcAwADJANsA4gDtAPUA9gD4APkA / gEBAQ4BFwEkASkBLQFJAV4BZwGDAYgAAAAAAAACAQAAAAAAAAAwAAAAAAAAAAAAAAAAAAABmg ==

在线base64 decoder:

生成的输出
  

bplist00./T$topX$objectsX$versionY$archiverTroot
  (U $空

     

\ NSAttributesXNSStringV $类   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 函数的不同标志,但它们都没有帮助生成与web工具相同的输出。

我有以下问题:

  1. Android base64 API 是否存在导致上述问题的限制?

  2. 我可以使用其他任何Android API吗?

  3. 我很感激有关这个问题的任何建议。提前谢谢。

2 个答案:

答案 0 :(得分:0)

String result = new String((Base64.decode(extracted_string.getBytes(“UTF-8"), Base64.DEFAULT)), “UTF-8”));

将其替换为:

 String result = new String(Base64.decode(extracted_string, Base64.DEFAULT));

答案 1 :(得分:0)

我发布的代码对于解码base64编码的字符串是正确的。 Android Studio控制台未显示整个解码字符串(可能是由于显示某些字符的限制)。