美文网首页
iOS中 HTML中字符实体转化为可直接显示字符

iOS中 HTML中字符实体转化为可直接显示字符

作者: Sh1mmer | 来源:发表于2019-07-09 11:00 被阅读0次

    由于项目是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]]];
    

    相关文章

      网友评论

          本文标题:iOS中 HTML中字符实体转化为可直接显示字符

          本文链接:https://www.haomeiwen.com/subject/aubtkctx.html