iphone - 解码字符串时获取垃圾和特殊字符

标签 iphone ios objective-c xcode cocoa-touch

<分区>

我遇到了一个问题。 当我尝试使用 Base64 解码字符串时,它会返回一些特殊字符作为响应。如果我们尝试使用这个字符串,那么应用程序就会崩溃。下面是从解码值中得到的代码字符串。

64B´%4àîÈÝ%ZÌ%
´E@/vÀ6mԶŪÜ

我必须做些什么才能使它成为普通字符串? 谁能帮我解决这个问题?

最佳答案

往这边走

  1. here 下载 Base64 文件

  2. 从下载的文件夹中提取这两个文件(NSData+Base64.h, NSData+Base64.m)并添加到您的项目中。

  3. 为这些新添加的文件禁用 ARC(如果您在项目中启用 ARC)

  4. #import "NSData+Base64.h" 到你的文件中

  5. 使用以下两种方法完成您的任务

    base64Encode

    base64解码

这是我的代码片段,我在演示示例中是如何做的

#import "ViewController.h"
#import "NSData+Base64.h"

@interface ViewController ()
@end

@implementation ViewController

@synthesize messageTextField;
@synthesize resultBase64Label;
@synthesize resultPlainTextLabel;

- (void)viewDidLoad
{
    [super viewDidLoad];    
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}

- (IBAction)convertToBase64:(id)sender {
    
    //keypad go back
    [messageTextField resignFirstResponder];
    
    NSString *resultBase64String = [self base64Encode:messageTextField.text];
    resultBase64Label.text = resultBase64String;    
}

- (IBAction)convertToPlainText:(id)sender {
    
    NSString *resultPlainString = [self base64Decode:resultBase64Label.text];
    resultPlainTextLabel.text = resultPlainString;
}

//convert plain text o base64
- (NSString *)base64Encode:(NSString *)plainText
{
    NSData *plainTextData = [plainText dataUsingEncoding:NSUTF8StringEncoding];
    NSString *base64String = [plainTextData base64EncodedString];
    return base64String;
}

//convert base64 to plain text
- (NSString *)base64Decode:(NSString *)base64String
{
    NSData *plainTextData = [NSData dataFromBase64String:base64String];
    NSString *plainText = [[NSString alloc] initWithData:plainTextData encoding:NSUTF8StringEncoding];
    return plainText;
}

@end

这是结果界面

关于iphone - 解码字符串时获取垃圾和特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15216365/

上一篇:ios无法显示数据库中的图像

下一篇:ios - UITabBarController 与 UIViewControllers 和 UITableViewControllers

相关文章:

objective-c - 您如何绑定(bind)或调用 Foundation 函数?

iphone - 先后关闭一个modalView和一个pushView

iphone - Objective-C:实例变量作为参数,但方法调用后实例变量为空

ios - 如何使用 Swift 获取推送通知状态?

ios - 使用 Codable 解码具有多个 key 的 JSON

iOS - 在运行 iOS7 的旧设备上模糊和错误的视网膜图形

iphone - 类方法中的IOS内存泄漏

ios - Apple 在哪里规定了付费应用程序的 30% 交易费?

iphone - 如何使 UITextView 可选择但不可编辑?

ios - 如何将现有日期添加到 UIDatePicker