美文网首页
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