【问题标题】:Decoding an encoded string解码编码字符串
【发布时间】:2014-05-14 14:57:30
【问题描述】:

我已经使用 CoreData 从 sqlite 数据库中获取数据,并获得了 NSString 值:

"SxzYEWe6vE2ggLy5k9XV0Q24QJoOfvrHt9jCpq8CgCkGvfdgghjPIhDH0qZkNXjSHQJEw0cbGzFEoqZSIpImoqcuc8iA57oRne31fxgigPLWiAyAjjNnam68Z25hArGzDXudEA1AXoSM1TmlLMSV6c3XfDZM/IPPR245K5+DawOH5M8ZdUnbDyqVKRsi6KvqKou7mVA8DoZWrPBgN5YbvVC/da0F9QHCcq8Di8dNQ2/sf/oVs/A+ThHnglkscKyFuQ3FH+HNjENG2ZHtyWe1fQ=="

它似乎是一个base64 编码字符串。我尝试了很多方法来解码字符串:

NSData *dataString = [[NSData alloc] initWithBase64EncodedString:data.desc options:0];
NSString *textMeaning = [[NSString alloc] initWithData:dataString encoding:NSUTF8StringEncoding];
// textMeaning return (null).

有没有人见过这个编码的字符串并且知道如何解码它?

【问题讨论】:

  • 没有上下文我想说:Hello i'm a string with no meaning
  • 检查 www.base64decode.org,你的字符串显然没有任何意义:"KgM@~Ƿ¦)`"Ҧd5xDG1DR"&.sȀ"ֈ3gjngna{@^9,ĕ|6L"。所以,在检查 NSData 转换方法之前,你应该检查你是如何以及从哪里得到这个字符串的。
  • 这个字符串是从哪里来的?您需要先了解它是如何编码的,然后才能对其进行解码。
  • 我已经检查了 www.base64decode.org,得到了相同的结果。但我希望该字符串应该是用于 webview 的 HTML 字符串。编码的字符串来自 sqlite 数据库,所以我不知道该字符串是如何编码的。
  • 这个编码字符串是一个英文单词的意思,所以我希望它是一个 html 字符串显示在 UIWebView 中。

标签: ios nsstring base64 decode


【解决方案1】:

试试这个base64方法解码,

NSString *decodeString = @"Apple";

    //Encode String

    NSData *encodeData = [decodeString dataUsingEncoding:NSUTF8StringEncoding];
    NSString *base64String = [encodeData base64EncodedStringWithOptions:0];
    NSLog(@"Encoded String Value: %@", base64String);


    //Decode String

    NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:base64String options:0];
    NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
    NSLog(@"Decoded String Value: %@", decodedString);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 2016-06-17
    • 2014-12-31
    • 1970-01-01
    • 2017-11-01
    • 2013-04-01
    • 2011-06-21
    相关资源
    最近更新 更多