2016-03-10 42 views
0

我必须检查给定的NSString中的每个字符的某些条件。[NSString substringWithRange]中的错误如果字符是4字节长度的UTF8?

当字符串包含将以4字节表示的字符时(UTF-8编码),结果不是我期望的字符。

NSString* oneCharString = [@"" substringWithRange:NSMakeRange(0, 1)]; 

调试器显示:

enter image description here

它看起来像一个空字符串。但检查显示了一些价值(可能是非性格的象征?)。

回答

1

如果你想获得一个字符串的第一个字符,你需要做的是这样的:

NSString *str = ... // the string such as @"" 
NSRange firstRange = [str rangeOfComposedCharacterSequenceAtIndex:0]; 
NSString *oneCharString = [str substringFromRange:firstRange]; 

此代码组成的字符正确的交易。