我正在尝试导入由filemaker创建的csv,并使用iTunes文件共享将其复制到我的设备上。我坚持应该是一个直截了当的步骤。我只是看不出我出错的地方。尝试了替代方法并设置了UTF8编码。还尝试从filemaker导出为xml UTF8,并尝试从手机中删除该应用程序并重新运行。即使我指定它,它似乎也不会读取编码。以下代码为我提供了此控制台输出。
文件存在 导入(null)错误域= NSCocoaErrorDomain代码= 264“操作无法完成。(可可错误264。)”
-(void)importDatabase {
NSString *importString;
NSError *error;
NSString *documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
if ([[NSFileManager defaultManager] fileExistsAtPath:[documentsDirectoryPath stringByAppendingString:@"/iPhone.csv"]]) {
NSLog(@" File exists");
NSStringEncoding encoding;
importString = [NSString stringWithContentsOfFile:[documentsDirectoryPath stringByAppendingString:@"/iPhone.csv"] usedEncoding:&encoding error:&error];
NSLog(@"Import %@ %@ ",importString, error);
} else {
NSLog(@" File doesn't exist");
}
}
答案 0 :(得分:7)
从标题:
NSFileReadUnknownStringEncodingError = 264, // Read error (string encoding of file contents could not be determined)
尝试告诉Foundation编码是什么,因为您知道编码是什么。
importString = [NSString stringWithContentsOfFile: blah encoding: NSUTF8StringEncoding error: &error];
答案 1 :(得分:0)
我遇到了类似的问题,结果发现该文件是在一些奇怪的代码页(大于128个字符)中编码的,而不是UTF-8。最后,我从未弄清楚它最初是如何编码的......
答案 2 :(得分:-9)
我想你刚忘了 [NSString alloc] ,因为这对我有用:
NSString *fileComponents = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];