Iphone 将照片数据转换为nsstring将返回nil

Iphone 将照片数据转换为nsstring将返回nil,iphone,utf-8,nsdata,nsstringencoding,Iphone,Utf 8,Nsdata,Nsstringencoding,我允许我的应用程序的用户要么拍摄一张照片,要么从他们的图库中选择一张。选中后,我需要获取图像的数据并将其转换为字符串,以便将其发送到web服务 我目前遇到的问题是,当我将编码设置为UTF8时,[NSString initWithData:]返回nil。对于XML消息,我需要将其设置为UTF8 NSString *dataString = [[NSString alloc] initWithData:UIImageJPEGRepresentation(theImage, 1.0) encoding

我允许我的应用程序的用户要么拍摄一张照片,要么从他们的图库中选择一张。选中后,我需要获取图像的数据并将其转换为字符串,以便将其发送到web服务

我目前遇到的问题是,当我将编码设置为UTF8时,[NSString initWithData:]返回nil。对于XML消息,我需要将其设置为UTF8

NSString *dataString = [[NSString alloc] initWithData:UIImageJPEGRepresentation(theImage, 1.0) encoding:NSUTF8StringEncoding];

谢谢你的建议

无法使用initWithData:encoding:method将UIImage转换为NSString。例如,此方法仅用于将字符串的数据转换为文本文件

如果您试图将任何类型的二进制数据转换为NSString,则可以使用某种编码。Base64被广泛使用。此外,您的服务器应该能够解码您发送的内容


此外,在大多数情况下,将图像发送到服务器只需按原样以二进制形式发布即可。

谢谢徐哲。在本例中,我不能将图像作为POST变量发送,我必须对其进行编码并将其作为web服务消息的一部分附加。但至少我现在知道我错了,我需要对图像数据进行Base64编码。如果你以前做过类似的事情,你能推荐一个好的图书馆吗?不客气。有关更多信息,请访问此链接。您还可以在本文底部下载名为NSData+Base64的NSData类别。将NSData转换为NSString base64编码非常容易。