我想使用NSFileHandle
來編寫大型文本文件,以避免在內存中處理非常大的NSString
。我在創建文件並在文本編輯應用程序(Mac)中打開文件後遇到了問題,它沒有正確顯示unicode字符。如果我使用NSString
writeToFile:atomically:encoding:error:
方法將相同文本寫入文件,則文本編輯將正確顯示所有內容。使用NSFileHandle創建UTF8文本文件時出現問題
我打開文本編輯中的「打開文件編碼」選項設置爲自動,這兩個文件,所以我不知道爲什麼一個工作,而另一種方法沒有。是否有某種形式的頭聲明格式爲UTF8?
// Standard string
NSString *myString = @"This is a test with a star character \u272d";
// This works fine
// Displays: "This is a test with a star character ✭" in Text Edit
[myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding];
// This doesn't work
// Displays: "This is a test with a star character ‚ú≠" in Text Edit
[fileManager createFileAtPath:path contents:nil attributes:nil];
fileHandle = [NSFileHandle fileHandleForWritingAtPath:path];
[fileHandle writeData:[myString dataUsingEncoding:NSUTF8StringEncoding]];
當你完成它時,不要忘記發送該文件句柄'closeFile'消息。 – 2010-08-22 05:15:53