如何将 Hex HTML 转换为 NSString

How to convert Hex HTML to NSString

我有:

NSString = @"%3Cfont+color%3D%22%23660000%22%3EBeta1%3C%2Ffont%3E++%3Cfont+color%3D%22%23000000%22%3Ebeta3%3C%2Ffont%3E"

如何将此十六进制 HTML 字符串转换为 NSSting 或 HTML 字符串以便我可以在获取文本的同时使用其字体和颜色属性?

乍一看字符串看起来是 url 编码的,所以:

NSString *input = @"%3Cfont+color%3D%22%23660000%22%3EBeta1%3C%2Ffont%3E++%3Cfont+color%3D%22%23000000%22%3Ebeta3%3C%2Ffont%3E";
NSString *result = [input stringByReplacingOccurrencesOfString:@"+" withString:@" "];
result = [result stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSLog(@"%@", result);       

然后将 html 解析为 NSAttributedString

NSAttributedString *as = [NSAttributedString attributedStringWithHTML:result];

注意 iOS 不支持开箱即用(osx 支持 ;))

(在 iOS 上使用 DTCoreText 库进行 html 解析)