24

如何获得字节长度NSString?如果myString包含“hallo”,myString.length将返回 5,但实际占用了多少字节?

4

4 回答 4

54
NSString *test=@"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
NSUInteger bytes = [test lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%i bytes", bytes);
于 2012-06-28T13:01:24.367 回答
8

要获取字节使用

NSData *bytes = [string dataUsingEncoding:NSUTF8StringEncoding];

然后你可以检查bytes.length

字节数取决于字符串编码

于 2012-06-28T13:00:10.703 回答
5

好:

NSString* string= @"myString";
NSData* data=[string dataUsingEncoding:NSUTF8StringEncoding];
NSUInteger myLength = data.length;
于 2012-06-28T13:01:20.637 回答
2

苹果文档

NSString 对象编码符合 Unicode 的文本字符串,表示为 UTF-16 代码单元序列。所有长度、字符索引和范围均以 16 位平台端值表示,索引值从 0 开始。

所以 NSString 使用的内存是每个字符 2 个字节加上对象本身使用的任何固定内存。

于 2018-01-16T22:46:26.120 回答