将NSData [UIImage]转换为NSString
题
我知道这个问题已被问过几次,但我无法找到最适合我情况的确定答案。
我希望能够让用户从库中选择一个图像,然后将该图像转换为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)
显然这不是我希望实现的,所以任何帮助都会很棒。
亲切的问候
解决方案
您不能仅使用任何二进制数据创建UTF-8编码的字符串 - 数据实际上需要UTF-8编码,而JPEG图像的数据显然不是。您的二进制数据不代表字符串,因此您无法直接从中创建字符串 - - [NSString initWithData:encoding:]
在您的情况下会失败。
假设您正在使用NSURLConnection(尽管其他方法也应该使用类似的语句),您将构建NSMutableURLRequest并使用 -setHTTPBody:
,您需要将NSData对象传递给它。我不明白为什么你会在这里使用GET方法,因为它听起来你将把这个图像数据上传到你的web服务 - 你应该使用POST。
不隶属于 StackOverflow