[NSString lengthOfBytesUsingEncoding:NSASCIIStringEncoding] 方法无法识别中文编码,真是令人揪心。
于是想获得一个char*类型的字符串,然后自己遍历一遍,将它整理为类似ASCII编码的格式,这里要用到
[NSString cStringUsingEncoding:NSUnicodeStringEncoding]函数获得一个const char*指针,然后对这个字符串进行遍历,遇/0就跳过,否则length+1.
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
- ( int )convertToInt:( NSString
*)strtemp { int
strlength = 0; char * p = ( char *)[strtemp cStringUsingEncoding: NSUnicodeStringEncoding ]; NSUInteger
count = [strtemp lengthOfBytesUsingEncoding: NSUnicodeStringEncoding ]; for
( int i = 0; i < count; i++) { if
(*p) { p++; strlength++; } else
{ p++; } } return
(strlength + 1)/2; } |
统计含中英文混编的NSString 字符串长度,布布扣,bubuko.com
原文:http://www.cnblogs.com/tomblogblog/p/3596680.html