將一個NSString類型字符串獲取的長度轉換成類似ASCII編碼的長度,如漢字2個字節,英文以及符號1個字節這個功能。
由於使用[NSString length]方法調用獲取的長度是一個中文和一個英文都是一個字節,而使用
[NSString lengthOfBytesUsingEncoding:NSASCIIStringEncoding] 方法無法識別中文編碼,真是令人揪心。
於是想獲得一個char*類型的字符串,然后自己遍歷一遍,將它整理為類似ASCII編碼的格式,這里要用到
[NSString cStringUsingEncoding:NSUnicodeStringEncoding]函數獲得一個const char*指針,然后對這個字符串進行遍歷,遇/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;
}
