【问题标题】:Convert NSData of Image from database to NSString in iPhone将图像的 NSData 从数据库转换为 iPhone 中的 NSString
【发布时间】:2011-03-04 13:43:12
【问题描述】:

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

这是我的代码

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];

数据长度为6511,但newstr1为nil

关于这个问题:我不能从数据库中的任意二进制数据中创建一个 UTF-8 编码的字符串——数据实际上需要是 UTF-8 编码的。我还完成了 base 64 编码和解码。我该如何解决这个问题。我只需要 NSString 格式的它作为 csv 文件的输入吗?

【问题讨论】:

  • base64StringFromData 和 base64DataFromString 是什么?我在 Apple SDK 中找不到它们。它们是你写的函数吗?
  • 我从cocoawithlove.com/2009/06/… 链接获得
  • 我明白了 - 谢谢!当您说“将其作为 csv 文件的输入”时,您的意思是您希望将图像数据嵌入到 CSV 文件本身的字段中吗?
  • 如果我在开放式办公室中打开 csv 文件,我应该会在一列上看到图像
  • 我不相信 CSV 文件类型支持这一点。我担心您可能需要实际导出 Excel 文件才能看到单元格内的解码图像....

标签: iphone nsstring nsdata


【解决方案1】:

我没有足够的字符编码知识,但是在您的输出中仅使用 Base 64 编码字符串 (Str1) 还不够吗?

我担心将 Str1 重新编码为 data1 会使您立即回到方块 1 并撤消之前在该行中完成的任何 Base 64 编码。

【讨论】:

  • 我也有同样的疑问,因为我确实知道我应该做什么。
猜你喜欢
  • 2011-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多