我正在开发我的第一个 iPhone 应用程序,在该应用程序中我必须计算 NSString 的长度,我已经在 SO 上尝试了可用的方法和解决方案,但长度总是错误的。例如,对于字符串“test4”,NSString.length 返回 12,而它应该返回 5。
我尝试过 NSString 的 length 属性和 lengthOfBytesUsingEncoding 但都返回相同的结果。
任何帮助,将不胜感激。
编辑
NSString *string = @"test4";
[string lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; // returns 12
string.length; // returns 12
完整代码
+(NSString *)AES256Encrypt:(NSString *)data withKey:(NSString *)rawkey{
rawkey = [NSString stringWithFormat:@"%@%@", @"123456789023456", rawkey];
rawkey = [rawkey substringWithRange:NSMakeRange(0, 32)];
NSData *key = [rawkey dataUsingEncoding:NSUTF8StringEncoding];
NSData *iv = [key subdataWithRange:NSMakeRange(0, 16)];
const char *bytes = [data cStringUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%d", data.length); // prints 12
data = [self encode:bytes length:data.length];
NSData *rawData = [data dataUsingEncoding:NSUTF8StringEncoding];
CCCryptorStatus status = kCCSuccess;
NSData *encrypted = [rawData dataEncryptedUsingAlgorithm:kCCAlgorithmAES128 key:key initializationVector:iv options:kCCOptionPKCS7Padding error:&status];
NSString *text = [encrypted base64EncodedString];
return text;
}
谢谢