2011-02-09 38 views
7

我試圖導入由filemaker創建的csv,並使用iTunes filesharing將其複製到我的設備上。我堅持什麼應該是一個簡單的步驟。我只是看不到我要去哪裏錯了。嘗試了另一種方法並設置UTF8編碼。還嘗試從文件導出器導出爲xml UTF8,並嘗試從手機中刪除應用程序並重新運行。即使我指定它,似乎也沒有讀取編碼。下面的代碼給了我這個控制檯輸出。stringWithContentsOfFile:usedEncoding:error:does not work

文件存在 導入(空)錯誤域= NSCocoaErrorDomain代碼= 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"); 
} 

}

回答

7

從標題 「該操作不能完成(可可誤差264)。」:

NSFileReadUnknownStringEncodingError = 264,   // Read error (string encoding of file contents could not be determined) 

試着告訴基金會什麼是編碼,因爲你知道編碼是什麼。

importString = [NSString stringWithContentsOfFile: blah encoding: NSUTF8StringEncoding error: &error]; 
+1

是的。我認爲這是問題。它不知道編碼是什麼。事實上,我忽略了下面的兩個警告。似乎有4.2.1中缺少文件。我將它們從4.2中取代,現在它變得很神奇。還有其他的帖子表明這是蘋果公司的疏忽。 警告:無法讀取/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1(8C148)/Symbols/usr/lib/info/dns.so(找不到文件)的符號。 無法讀取/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1(8C148)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib(未找到文件)的符號。 – codeDoctor 2011-02-09 16:54:06

-9

我想你忘記了[的NSString頁頭]因爲這個工作對我來說:

NSString *fileComponents = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; 
0

我也有類似的問題,事實證明,該文件是在一些奇怪的代碼編碼頁面(> 128個字符),而不是UTF-8。最後,我從來沒有弄清楚它最初是如何編碼的...