Char to NSString ObjC

时间:2014-01-14 15:02:21

标签: ios objective-c char

NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myFile"];
NSData *bytes = [[NSData alloc] initWithContentsOfFile:filePath];
NSUInteger len = [bytes length];    
Byte *byteData = (Byte*)malloc(len);
memcpy(byteData, [bytes bytes], len);
NSMutableString *fileContents = [NSMutableString alloc] init];
for (int i = 0; i < len; i++) {
    char curChar = byteData[i];
    [fileContents appendString:[NSString stringWithFormat:@"%c", curChar]];
}

char curChar = byteData[i]之后立即设置断点,我看到了这一点:http://i.imgur.com/ryyi0Rw.png http://i.imgur.com/RaRQ7fu.png
如何准确追加fileContents图像中显示的内容(\ x02,\ xd0等)?目前我所得到的都是奇怪的人物,如Ð
我已经看到很多关于如何将char转换为NSString的问题,但没有什么是我想要的......

2 个答案:

答案 0 :(得分:1)

使用其他格式:

[fileContents appendString:[NSString stringWithFormat:@"\\x%02x", (unsigned)curChar]];

编辑:要保存输入,您可以使用appendFormat:(正如Nikolai Ruhe现在删除的答案中所指出的那样)。

答案 1 :(得分:0)

如果你的意思是你想要字面上反斜杠-x-0-2,那么请参阅@ trojanfoe的回答。如果你的意思是你想要“有价值2的角色”,那么请继续阅读。

该文件的编码是什么?如果不考虑编码,就不能谈论字符串。如果它只是“一串字节”那么那不是NSString;它是一个NSData,应该这样对待。

知道编码后,您就不需要NSData步骤了。只需使用[NSString stringWithContentsOfFile:encoding:error:]