Numeric Character Reference转NSString

来源:互联网 发布:黄金现货数据 编辑:程序博客网 时间:2024/06/06 09:20
在处理数据的时候,有时候会遇到 &# 开头的数据,例如Σ那么这个是 Numeric Character Reference编码。NCR编码是由一个与号(&)跟着一个井号(#), 然后跟着这个字符的Unicode编码值, 最后跟着一个分号组成的, 如:
&#nnnn;或者&#xhhhh
其中, nnnn是字符编码的十进制表示, 而hhhh是字符的16进制表示.在ios中处理这种编码有两种方法,一种使用NSAttributedString的方式,这种比较简单,但是处理极慢。另外一种就是自己写编码转换。两种实现的代码如下:
-(NSString *)toUnicodeString{    NSMutableString *srcString =    [[NSMutableString alloc]initWithString:self];    if ([srcString containsString:@"&#"]) {        [srcString replaceOccurrencesOfString:@"&#" withString:@"" options:NSLiteralSearch range:NSMakeRange(0,     [srcString length])];    NSMutableString *desString = [[NSMutableString alloc]init];    NSArray *arr = [srcString componentsSeparatedByString:@";"];    for(int i=0;i<[arr count]-1;i++){        NSString *v = [arr objectAtIndex:i];        char *c = malloc(3);        int value = [v intValue];        c[1] = value  &0x00FF;        c[0] = value >>8 &0x00FF;        c[2] = '\0';        [desString appendString:[NSString stringWithCString:c encoding:NSUnicodeStringEncoding]];        free(c);    }    return desString;}else{    return self;}}-(NSString *)toUnicodeString2{NSError * error=nil;NSData *encodedData = [self dataUsingEncoding:  NSUTF8StringEncoding];NSDictionary *options = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:encodedData options:options documentAttributes:nil error:&error];return [attributedString string];}


查看原文:http://www.giser.net/?p=1525
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 六个月婴儿消化不好怎么办 六个月婴儿肠胃不好怎么办 受了惊吓后睡眠不好怎么办 宝宝夏季吃饭不爱带围嘴怎么办 3岁宝宝爱看电视怎么办 新生儿晚上哭闹不睡觉怎么办 档案丢了怎么办失业证 三岁宝宝不合群怎么办 阴唇手术半月了疤痕增生怎么办 宝宝小阴唇黏连怎么办 6个月宝宝阴唇粘连怎么办? 高一孩子不爱上学怎么办 3岁宝宝外阴发红怎么办 40爸妈离婚我该怎么办 小儿吃糖卡住了怎么办 额头撞墙上肿了怎么办 宝宝额头撞肿了怎么办 小孩额头撞肿了怎么办 宝宝撞到额头肿了怎么办 小孩子上一年级语文很差了怎么办? 楼下说小孩太吵怎么办 托班的小孩太吵怎么办 宝宝两岁只会简单的词怎么办 我儿子的视力低怎么办 小孩子课文看书都不会读怎么办 宝宝衣服买小了怎么办 拉拉裤腰围小了怎么办 一周九个月宝宝发烧怎么办 8个月的婴儿37.7怎么办 宝宝发烧37度3怎么办 2岁宝宝发烧37度怎么办 3个月新生儿发烧怎么办 生完孩子肚子松弛怎么办 6个月婴儿高烧怎么办 7个月婴儿高烧怎么办 11个月婴儿高烧怎么办 4个月婴儿高烧怎么办 新生宝宝混合喂养消化不良怎么办 四个月的宝宝不追听不追视怎么办 宝宝母乳换奶粉拉肚子怎么办 奶牛产奶脂肪低怎么办