将NSData对象中的rtf数据转换为NSString对象

时间:2011-08-10 21:24:01

标签: iphone ios cocoa-touch nsstring nsdata

我在iOS上工作,我想读取NSData中的rtf数据(实际上它是核心数据实体中的一个属性)。我正在使用以下代码:

NSString *temp = [NSString stringWithUTF8String:[self.task.notes bytes]];

NSLog(@"%@ %i", temp, [temp length]);

控制台产生消息“rtfd 4”。但我正在寻找rtfd原始数据。 谢谢您的帮助, 何。

2 个答案:

答案 0 :(得分:0)

这可能或没有任何帮助

// USAGE NSLog(@"%@",[Utilities dataToString:data delimiter:@"|"]);
+(NSString*)dataToString:(NSData*)inData delimiter:(NSString*)delimiter {
    if ([inData length] == 0) {
        return @"";
    }
    if (delimiter == nil) {
        delimiter = @"";
    }
    const unsigned char * p= (const unsigned char *) [inData bytes];
    NSMutableString* outString= [[NSMutableString alloc]initWithCapacity:[inData length]*3];
    for (int i=0; i< [inData length]; i++) {
        [outString appendFormat:@"%02x",p[i]];
        [outString appendString:delimiter];
    }
    [outString autorelease];
    return outString;
}

答案 1 :(得分:0)

如果您想要 RTFD 数据流的原始字符串,那么您可以在 Swift 中使用以下代码:

let raw = String(data: data, encoding: .ascii)

如果您有 RTF 数据流,请使用以下代码:

let raw = String(data: data, encoding: .utf8)