如何在 iOS 字符串中禁用或绕过 Base64 图像 url 数据的转义序列
Posted
技术标签:
【中文标题】如何在 iOS 字符串中禁用或绕过 Base64 图像 url 数据的转义序列【英文标题】:How to disable or bypass escape sequence in iOS string for Base64 Image url data 【发布时间】:2013-03-23 10:10:37 【问题描述】:我正在从我的服务器的 json 请求中接收 base64 字符串... base64 字符串如下所示: “/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1J...”(缩短得很好)
现在我的问题是,当我从 NSString > NSURL 转过来时,反斜杠会从字符串中转义... "/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1J"
即“/”变成了“/” 现在我很确定这是我对 UIImage 问题的编码问题(通过以下方法:NSString -> NSURL -> NSData -> UIImage)
创建 UIImage 的代码:
imageAllArray = [pathwayResults valueForKey:@"images_data_base64"];
NSURL *image2URL = [NSURL URLWithString:[imageAllArray objectAtIndex:1]];
NSData *image2Data = [NSData dataWithContentsOfURL:image2URL];
imageTwo = [UIImage imageWithData:image2Data];
有没有人知道一种方法来确保反斜杠保留在要转换的字符串中?
或者还有其他/更简单的方法可以解决这个问题吗?
【问题讨论】:
【参考方案1】:NSString *encodedString = [@"your string" stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
【讨论】:
【参考方案2】:我发现反斜杠根本没有造成太大的危害,这是因为我忘记在字符串前面加上:“data:image/png;base64”
见下文:
NSString *prepender = @"data:image/png;base64,";
NSString *image1String = [NSString stringWithFormat:@"%@%@", prepender, [pathwayImageArray objectAtIndex:0]];
NSURL *image1URL = [NSURL URLWithString:image1String];
NSData *image1Data = [NSData dataWithContentsOfURL:image1URL];
imageOne = [UIImage imageWithData:image1Data];
希望这对其他人有帮助!
【讨论】:
以上是关于如何在 iOS 字符串中禁用或绕过 Base64 图像 url 数据的转义序列的主要内容,如果未能解决你的问题,请参考以下文章
如何绕过 IE8 32k 数据限制:base64 编码上的 uri?
在 iOS 上使用 Phonegap 将图像转换为 Base64 字符串
如何在 ios 中将 Base64 编码的 NSString 转换为字节数组(Java)?