问题
I am converting NSData of Image from database to NSString in iPhone
Here is my code
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];
The length of data is 6511 , but the newstr1 is nil
With reference to this stack overflow question. I can't create a UTF-8 encoded string out of just any arbitrary binary data from the database - the data needs to actually be UTF-8 encoded. I need it in the format of NSString only, to give it as input to a CSV file.
EDIT:
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];
After base 64 encoding and decoding also my string is nil.
回答1:
Chances are very good that you don't actually want to dump raw binary data into a CSV file. You probably want to look into base64-encoding the data instead. This previous answer should be able to help you with that.
来源:https://stackoverflow.com/questions/5183100/how-to-convert-nsdata-of-image-from-database-to-nsstring-in-iphone