我正在尝试获取包含一堆表情符号(包括标志字符)的 NSString 的长度。现在我知道如何获取包含表情符号的字符串的长度:
__block NSInteger length = 0;
[string enumerateSubstringsInRange:range
options:NSStringEnumerationByComposedCharacterSequences
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
length++;
}];
但是,“NSStringEnumerationByComlatedCharacterSequences”在这种情况下不起作用。普通的表情符号是由两个字符放在一起组成的。旗帜表情符号由两个类似表情符号的字符组合而成。因此,在没有任何枚举技术的情况下,一个旗帜表情符号的长度为 4。
如何获得包含标志表情符号的 NSString 的正确长度(字符数)?
最佳答案
我尝试了以下解决方案。 对于普通表情符号,它返回 2,对于标志,它返回 4。 这也适用于普通字符和特殊字符。
const char *cString = [string UTF8String];
int textLength = (int)strlen(cString);
关于ios - NSString 长度与标志表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32365686/