【发布时间】:2012-01-02 07:51:26
【问题描述】:
如何从包含此字符的 NSString 的字节日期返回到 NSString:fl ?
NSString *inflatedString01 = @"fl";
// original code that was the problem!
NSData *dataOfString = [NSData dataWithBytes:[inflatedString01 UTF8String] length:[inflatedString length]];
// code that fixes the problem
//NSData *dataOfString = [inflatedString01 dataUsingEncoding:NSUTF8StringEncoding]; //thanks zneak
NSLog(@"%@",inflatedString01);
NSLog(@"%i",[inflatedString01 length]);
NSLog(@"%@",dataOfString);
NSLog(@"%i",[dataOfString length]);
NSString *stringFromData = [NSString stringWithCString:[dataOfString bytes] encoding:NSUTF8StringEncoding]
NSLog(@"%@",stringFromData);
上面的输出给出:
2012-01-02 08:47:48.963 TestApp[74363:fe03] fl
2012-01-02 08:47:49.262 TestApp[74363:fe03] 1
2012-01-02 08:47:49.540 TestApp[74363:fe03] <ef>
2012-01-02 08:47:49.924 TestApp[74363:fe03] 1
2012-01-02 08:47:50.787 TestApp[74363:fe03] (null)
我希望看到最后一个 NSLog 输出的 FL 而不是 (null)。我猜 NSData 的 'ef' 输出很重要。
【问题讨论】:
-
其实我想我明白了,我试过了: NSData *dataOfString = [NSData dataWithBytes:[inflatedString01 UTF8String] length:strlen([inflatedString01 UTF8String])];它得到了正确长度的字符串字节数据(我认为!)
标签: string encoding nsstring byte nsdata