【发布时间】:2013-06-22 08:04:38
【问题描述】:
是否有任何用 C 编写的高效(对于大于 5MB 的文本文件)引用的可打印解码器? 我在 iOS 项目中需要这样的解码器。
与此同时,我正在使用一个太慢的高级解码器。在设备上解码 5MB 文件最多需要 10 分钟:
- (NSString *)decodedQuotedPrintable:(NSString *)string
{
NSMutableString *decodedString = string.mutableCopy;
[decodedString replaceOccurrencesOfString:@"=\r\n" withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0, decodedString.length)];
NSInteger idx = 0;
_WHILE(idx != NSNotFound)
{
idx = [decodedString rangeOfString:@"="
options:NSCaseInsensitiveSearch
range:NSMakeRange(idx + 1, decodedString.length - idx - 1)].location;
_IF(idx + 5> decodedString.length)
{
break;
}
unsigned int hex = 0;
NSScanner *scanner = [NSScanner scannerWithString:[decodedString substringWithRange:
NSMakeRange(idx+1, 2)]];
[scanner scanHexInt:&hex];
[decodedString replaceCharactersInRange:NSMakeRange(idx, 3)
withString:[NSString stringWithFormat:@"%c", hex]];
}
return decodedString;
}
【问题讨论】:
标签: ios nsstring quoted-printable