如何在iPhone中将Image的NSData从数据库转换为NSString?

时间:2011-03-03 15:51:14

标签: iphone nsstring nsdata

我正在将图像的NSData从数据库转换为iPhone中的NSString

这是我的代码

imageData1 = [[NSData alloc] initWithBytes:sqlite3_column_blob(compiledStatement, 2) length: sqlite3_column_bytes(compiledStatement, 2)];           
NSLog(@"the data length %d",[imageData1 length]);
NSString* newStr1 = [[NSString alloc] initWithData:imageData1 encoding:NSUTF8StringEncoding];

数据长度为6511,但newstr1为零

参考此stack overflow question。我无法从数据库中的任何二进制数据中创建UTF-8编码的字符串 - 数据实际上需要UTF-8编码。我只需要NSString的格式,将其作为CSV文件的输入。

编辑:

imageData1 = [[NSData alloc] initWithBytes:sqlite3_column_blob(compiledStatement, 3) length: sqlite3_column_bytes(compiledStatement, 3)];           
NSString * Str1 = [NSString base64StringFromData: imageData1 length: [imageData1 length]];
NSData *data1=[NSData base64DataFromString:Str1];
NSString* newStr1 = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];

在base 64编码和解码之后,我的字符串也是nil。

1 个答案:

答案 0 :(得分:3)

您实际上并不想将原始二进制数据转储到CSV文件中,这是非常好的。您可能希望查看base64编码数据。 This previous answer应该可以帮助你。