2

我尝试从文件中读取字符串:

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}

知道有什么问题吗?

4

4 回答 4

4

如前所述,Cocoa error 261NSFileReadInapplicableStringEncodingError意味着文件的编码与您在 API 中传递的不同。

对于希伯来语语言编码,试试这个答案

NSString* content = [[NSString alloc] initWithContentsOfFile:path encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingWindowsHebrew) error:&err];

希望有帮助!

于 2013-09-04T08:43:48.897 回答
1

错误似乎是编码问题..

如果您不知道文件的编码,可以尝试以下方法:

- (id)initWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error

参考这里

并尝试这样的事情:

NSError *error = nil;
NSStringEncoding encoding;

NSString *my_string = [[NSString alloc] initWithContentsOfURL:url
                                                 usedEncoding:&encoding 
                                                        error:&error];
于 2013-09-04T08:39:51.460 回答
0

尝试这个

NSString *pathtest = [[NSBundle mainBundle] pathForResource:@"dirty" ofType:@"txt"];
NSString* content = [[NSString alloc] initWithContentsOfFile:pathtest encoding:NSASCIIStringEncoding error:&error];
NSLog(@"Test: %@",content);
于 2013-09-04T08:47:59.130 回答
0

尝试这个。

NSString* content = [[NSString alloc] initWithContentsOfFile:path encoding:nil error:&err];

或更改“编码”的类型希望它能解决您的问题。

于 2013-09-04T08:37:18.483 回答