如何在iPhone中将Image的NSData从数据库转换为NSString? [英] How to convert NSData of Image from database to NSString in iPhone?

查看:50
本文介绍了如何在iPhone中将Image的NSData从数据库转换为NSString?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am converting NSData of Image from database to NSString in iPhone

这是我的代码

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

The length of data is 6511 , but the newstr1 is nil

参考此堆栈溢出问题.我不能从数据库中的任何任意二进制数据中创建UTF-8编码的字符串-数据实际上必须是UTF-8编码的.我只需要使用NSString格式,就可以将其作为CSV文件的输入.

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.

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.

After base 64 encoding and decoding also my string is nil.

推荐答案

很有可能您实际上并不希望将原始二进制数据转储到CSV文件中.您可能想改为使用base64编码的数据. 先前的答案应该可以帮助您.

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.

这篇关于如何在iPhone中将Image的NSData从数据库转换为NSString?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆