0

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"

私は基本的な何かが欠けていると思います。このエンコーディングの問題はどうなっていますか?

4

1 に答える 1

2

まず第一に、大量のバイナリ データを XML に埋め込むのは得策ではありません。

あなたの質問に答えるには、Base64などのバイナリ データをサポートするエンコード スキームが必要です。

任意の NSData を Base64 でエンコードされた文字列として表現する複数の方法については、このページを参照してください: http://www.cocoadev.com/index.pl?BaseSixtyFour

更新: Colloquy の NSData 追加へのリンクは、そのページで壊れているようです。新しい URL は次のとおりです: http://colloquy.info/project/browser/trunk/Additions/NSDataAdditions.m

于 2010-04-03T23:19:55.763 に答える