將一個(gè)NSString類型字符串獲取的長度轉(zhuǎn)換成類似ASCII編碼的長度,如漢字2個(gè)字節(jié)树姨,英文以及符號1個(gè)字節(jié)這個(gè)功能玻蝌。
由于使用[NSString length]方法調(diào)用獲取的長度是一個(gè)中文和一個(gè)英文都是一個(gè)字節(jié)灌危,而使用
[NSString lengthOfBytesUsingEncoding:NSASCIIStringEncoding] 方法無法識別中文編碼
于是想獲得一個(gè)char*類型的字符串,然后自己遍歷一遍嫡纠,將它整理為類似ASCII編碼的格式,這里要用到
[NSString cStringUsingEncoding:NSUnicodeStringEncoding]函數(shù)獲得一個(gè)const char*指針延赌,然后對這個(gè)字符串進(jìn)行遍歷除盏,遇/0就跳過,否則length+1挫以。
-
(int)convertToInt:(NSString*)strtemp {
int strlength = 0; char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding]; for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) { if (*p) { p++; strlength++; } else { p++; }
}
return strlength;
}