0

我正在开发我的第一个 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;
}

谢谢

4

1 回答 1

1
NSString *myString = @"test4";
int i =myString.length;
NSLog(@"Count =%d",i); 

哪个打印Count = 5

于 2012-09-25T07:49:29.977 回答