我想使用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