【发布时间】:2011-07-08 04:10:18
【问题描述】:
我正在将图像的 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为nil
参考这个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 编码和解码后,我的字符串也为零。
【问题讨论】: