我尝试用以下文件读取文件中的字符串:
NSString* path = [[NSBundle mainBundle] pathForResource:@"dirty" ofType:@"txt"];
NSString* content = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&err];
我得到的字符串是零。在我得到的错误中:
Error Domain=NSCocoaErrorDomain Code=261 "The operation couldn’t be completed. (Cocoa error 261.)" UserInfo=0x21063410 {NSFilePath=/var/mobile/Applications/78889F89-B83C-480C-A246-999152EE757C/Myapp.app/dirty.txt, NSStringEncoding=4}
知道这是什么问题吗?
答案 0 :(得分:4)
如上所述,Cocoa error 261
为NSFileReadInapplicableStringEncodingError
,这意味着文件的编码与您在API中传递的编码不同。
对于希伯来语语言编码,请尝试this answer
NSString* content = [[NSString alloc] initWithContentsOfFile:path encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingWindowsHebrew) error:&err];
希望有所帮助!
答案 1 :(得分:1)
错误似乎是编码问题..
如果您不知道文件的编码,可以尝试以下方法:
- (id)initWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error
参考HERE
和 试试这样的事情:
NSError *error = nil;
NSStringEncoding encoding;
NSString *my_string = [[NSString alloc] initWithContentsOfURL:url
usedEncoding:&encoding
error:&error];
答案 2 :(得分:0)
试试这个。
NSString* content = [[NSString alloc] initWithContentsOfFile:path encoding:nil error:&err];
或更改“编码”类型希望它能解决您的问题。
答案 3 :(得分:0)
试试这个
NSString *pathtest = [[NSBundle mainBundle] pathForResource:@"dirty" ofType:@"txt"];
NSString* content = [[NSString alloc] initWithContentsOfFile:pathtest encoding:NSASCIIStringEncoding error:&error];
NSLog(@"Test: %@",content);