【问题标题】:Converting rtf data in an NSData object to a NSString object将 NSData 对象中的 rtf 数据转换为 NSString 对象
【发布时间】:2011-10-24 11:38:40
【问题描述】:
我正在开发 iOS,我想读取 NSData 中的 rtf 数据(实际上它是核心数据实体中的一个属性)。我正在使用以下代码:
NSString *temp = [NSString stringWithUTF8String:[self.task.notes bytes]];
NSLog(@"%@ %i", temp, [temp length]);
控制台产生消息“rtfd 4”。但我正在寻找 rtfd 原始数据。
谢谢您的帮助,
何塞。
【问题讨论】:
标签:
iphone
ios
cocoa-touch
nsstring
nsdata
【解决方案1】:
这可能有帮助,也可能没有帮助
// 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;
}
【解决方案2】:
如果你想要一个 RTFD 数据流的原始字符串,那么你在 Swift 中使用这个代码:
let raw = String(data: data, encoding: .ascii)
如果您有 RTF 数据流,请使用以下代码:
let raw = String(data: data, encoding: .utf8)