美文网首页
NSString 编码

NSString 编码

作者: 舌尖上的大胖 | 来源:发表于2018-07-14 10:09 被阅读0次
    image.png

    一、澄清

    首先澄清一点:NSString 中的字符串对象本身,并不存在编码问题。所提及的编码问题,不是字符串类型本身的,而是存储时所采用的编码。如:存储成 NSData

    最常见的:

    NSString *s = @"中文abc";
    NSData *data = [s dataUsingEncoding:NSUTF8StringEncoding];
    [data writeToFile:@"test.txt" atomically:YES];
    

    其中的 NSUTF8StringEncodingNSStringEncoding 类型,位于 NSString.h 中。

    二、NSUTF8StringEncodingCFStringEncodings

    NSStringEncoding 中直接包含的的编码类型并不是很全,可以使用 CFStringEncodings 中的类型,通过 CFStringConvertEncodingToNSStringEncoding 进行转换。
      CFStringEncodingsCFStringEncodingExt.h 中。

    例如:(从 NSData 中,根据编码类型,提取 NSString

    NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
    
    retStr = [[NSString alloc] initWithData:data encoding:enc];
    

    在提取时,如果指定的编码不匹配,会返回 nil。也可以用这种机制做编码侦测。

    (完)

    相关文章

      网友评论

          本文标题:NSString 编码

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