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的问题,但没有什么是我想要的......
答案 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:]
。