OC 中定位特殊字符

今天遇到一個問題,連續(xù)輸入檢索,輸入中文的時候,系統(tǒng)會返回一個帶空格的字符串,然后馬上又去除。這樣會造成連續(xù)檢索,導(dǎo)致中間搜索到空白,有空白頁的閃屏。

如:用戶輸入 Url, 通過textfield delegate 回調(diào),的是:
U
U r
Ur
U r l
Url
經(jīng)過百度,發(fā)現(xiàn)這個空格并不是普通的空格。

解決辦法:

  1. 定位字符串
NSData * u = [text dataUsingEncoding:NSUTF8StringEncoding];
NSString *hex = [u description];

發(fā)現(xiàn)當(dāng)返回U r 的時候, hex 顯示的是:0x55e2808672
返回 Ur, hex 顯示的是 0x5572
所以,可以定位這個空格的編碼為 e28086
所以,去除辦法就是:

- (NSString *)cleanChineseSpace
{
  char space[] = {0xe2, 0x80, 0x86};
  NSData *data = [NSData dataWithBytes:space length:3];
  NSString *strSpace = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  NSString *ret = [self stringByReplacingOccurrencesOfString:strSpace withString:@""];
  return ret;
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容