HTML转iOS 字符串

        项目中我们网络请求获取的字符串可能是html格式的,要想将其用UILabel显示会出现一些奇怪的乱码符号,下面我们来解决将html格式的字符转为iOS字符串的问题

情况一:

形如“"

1.\U73b0\U804c\U5de5\U4f5c\U6301\U7eed4\U4e2a\U6708\U4ee5\U4e0a

2.\U6708\U6536\U51652000\U5143\U4ee5\U4e0a\U3002

"”的字符串转成正常的iOS字符串

首先转成NSAttributedString类型

NSString * text=“"

1.\U73b0\U804c\U5de5\U4f5c\U6301\U7eed4\U4e2a\U6708\U4ee5\U4e0a

2.\U6708\U6536\U51652000\U5143\U4ee5\U4e0a\U3002

"”

NSAttributedString * attriStr=[[NSAttributedString alloc]initWithData:[text dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType} documentAttributes:nil error:nil];

NSString *message=attriStr.String;

这里得到的message是一个标准格式的html字符,可情况二的方法得到iOS的字符串

情况二:

形如“

1.\U73b0\U804c\U5de5\U4f5c\U6301\U7eed4\U4e2a\U6708\U4ee5\U4e0a

的标准html字符

可用如下方法转成iOS字符串

-(NSString *)filterHTMLString:(NSString *)html

{

NSScanner * scanner = [NSScanner scannerWithString:html];

NSString * message = nil;

while([scanner isAtEnd]==NO)

{

[scanner scanUpToString:@"<" intoString:nil];

[scanner scanUpToString:@">" intoString:&message];

html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>",message] withString:@""];

}

return html;

}

这样调用以上方法就可以把收到的json数据中的html字串符转化成iOS的字符串,并显示到UILabel上了

你可能感兴趣的:(HTML转iOS 字符串)