主要是将oc字符串转成c的字符串(char*),然后判断c的字符串的长度,因为中文字符占得长度是英文字符的两倍。 //判断一个字符书不是中文。 -(BOOL)isChinese:(NSString*)c{ int strlength = 0; char* p = (char*)[ccStringUsingEncoding:NSUnicodeStringEncoding]; for (int i=0 ; i<[c lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) { if (*p) { p++; strlength++; } else { p++; } } return ((strlength/2)==1)?YES:NO; } 检验: NSString* str = @"我"; NSLog(@"%d",[selfisChinese:str]); NSString* str2 = @"w"; NSLog(@"%d",[selfisChinese:str2]); //计算一段字符串的长度,两个英文字符占一个长度。 - (int)countTheStrLength:(NSString*)strtemp { int strlength = 0; char* p = (char*)[strtempcStringUsingEncoding:NSUnicodeStringEncoding]; for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) { if (*p) { p++; strlength++; } else { p++; } } return (strlength+1)/2; }