将NSData [UIImage]转换为NSString

时间:2009-11-29 14:15:15

标签: iphone nsstring nsdata

我知道这个问题已被问过几次,但我无法找到最适合我情况的确定答案。

我希望能够让用户从库中选择一个图像,然后将该图像转换为NSData类型。然后,我要求通过HTTP调用.NET C#webservice,理想情况下我需要将结果字符串转换为UTF8。

这是我到目前为止所做的:

NSData *dataObj = UIImageJPEGRepresentation(selectedImage, 1.0);
    [picker dismissModalViewControllerAnimated:YES];
    NSString *content =  [[NSString alloc] initWithData:dataObj encoding:NSUTF8StringEncoding];
    NSLog(@"%@", content);

NSLog语句只生成输出:

2009-11-29 14:13:33.937 TestUpload2[5735:207] (null)

显然这不是我希望实现的,所以任何帮助都会很棒。

亲切的问候

1 个答案:

答案 0 :(得分:2)

您不能仅使用任何二进制数据创建UTF-8编码的字符串 - 数据实际上需要UTF-8编码,而JPEG图像的数据显然不是。您的二进制数据不代表字符串,因此您无法直接从中创建字符串 - -[NSString initWithData:encoding:]在您的情况下适当地失败。

假设您正在使用NSURLConnection(尽管其他方法也应该使用类似的语句),您将构造NSMutableURLRequest并使用您需要传递NSData对象的-setHTTPBody:。我不明白为什么你会在这里使用GET方法,因为它听起来你将把这个图像数据上传到你的web服务 - 你应该使用POST。