方法一:
- (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.根據(jù)ASCII碼
for(inti =0; i < text.Length; i++){if((int)text[i] >127) {returnYES唤衫;
}else{returnNO啼止;
}
}
這兩種方法第一種是根據(jù)漢字的編碼位置判斷的嗽测,幾乎所有漢字的 UNICODE 編碼范圍是4e00-9fbb奇瘦。在范圍內(nèi)的就返回yes忧陪,可是因為區(qū)間范圍有多處鹦牛,這里只判斷一處最大的范圍(幾萬字)羹幸,其余幾個范圍少(一共才幾百字)。第二種是根據(jù)字節(jié)數(shù)判斷的赁遗。第三種是根據(jù)ASCII碼判斷的署辉。在 ASCII碼表中,英文的范圍是0-127岩四,而漢字則是大于127哭尝。