我正在尝试获取一个NSImage,并将其转换为可以写入XML文档的字符串。
我当前的尝试如下所示:
[xmlDocument setCharacterEncoding: @"US-ASCII"];
NSData* data = [image TIFFRepresentation];
NSString* string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
//Put string inside of NSXMLElement, write out NSXMLDocument.回读看起来就像这样:
NSXMLDocument* newXMLDocument = [[NSXMLDocument alloc] initWithData:data options:0 error:outError];
//Here's where it fails. I get:
//Error Domain=NSXMLParserErrorDomain Code=9 UserInfo=0x100195310 "Line 7: Char 0x0 out of allowed range"我想我遗漏了一些基本的东西。这个编码问题是怎么回事?
发布于 2010-04-04 07:19:56
首先,在XML中嵌入大量二进制数据不是一个好主意,IMHO。
要回答您的问题,您需要一种支持二进制数据的编码方案,例如Base64。
有关将任意NSData表示为base64编码字符串的多种方法,请参阅此页面:http://www.cocoadev.com/index.pl?BaseSixtyFour
Colloquy更新:该页面上指向Colloquy NSData additions的链接似乎断开了。这是新的网址:http://colloquy.info/project/browser/trunk/Additions/NSDataAdditions.m
https://stackoverflow.com/questions/2572999
复制相似问题