由于项目是web端和移动端通用的数据,有的时候有些字符web端显示正常.但到了移动端就会直接显示字符的实体名称.
屏幕快照 2019-07-09 上午10.46.59.png
挨个替换会麻烦
在这我们可以使用下面的方法来同意替换为显示结果
-(NSString*)attributedStringWithHTMLString:(NSString*)htmlString{
NSDictionary *options = @{ NSDocumentTypeDocumentAttribute :NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute :@(NSUTF8StringEncoding) };
NSData *data = [htmlString dataUsingEncoding:NSUTF8StringEncoding];
NSAttributedString *string = [[NSAttributedString alloc] initWithData:data options:options documentAttributes:nil error:nil];
return string.string;
}
网络请求下来的数据一般都是字典格式,我们可以在数据请求下来的时候直接将里面的数据全部转换下
//字典转字符串
-(NSString*)dictionaryToJson:(NSDictionary *)dic {
NSError *parseError = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
//字符串转字典
-(NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString{
if (jsonString == nil) {
return nil;
}
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *err;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err];
if(err) {
NSLog(@"json解析失败:%@",err);
return nil;
}
return dic;
}
直接将json传进来就可以了
[self dictionaryWithJsonString:[self attributedStringWithHTMLString:[self dictionaryToJson:jsonDic]]];
网友评论