方法一:
- (BOOL)hasChinese:(NSString *)str {for(inti=0; i< [str length];i++){inta =[str characterAtIndex:i];if( a >0x4e00&& a <0x9fff)
{returnYES;
}
}returnNO;
}
方法二:
- (BOOL)isHasChineseWithStr:(NSString *)strFrom {for(inti=0; i
NSRange range=NSMakeRange(i,1);
NSString* strFromSubStr=[strFrom substringWithRange:range];constchar*cStringFromstr =[strFromSubStr UTF8String];if(strlen(cStringFromstr)==3) {//汉字returnYES;
}elseif(strlen(cStringFromstr)==1) {//字母}
}returnNO;
}
3.根据ASCII码
for(inti =0; i < text.Length; i++){if((int)text[i] >127) {returnYES;
}else{returnNO;
}
}
这两种方法第一种是根据汉字的编码位置判断的,几乎所有汉字的 UNICODE 编码范围是4e00-9fbb。在范围内的就返回yes,可是因为区间范围有多处,这里只判断一处最大的范围(几万字),其余几个范围少(一共才几百字)。第二种是根据字节数判断的。第三种是根据ASCII码判断的。在 ASCII码表中,英文的范围是0-127,而汉字则是大于127。