我正在将字符串写入文件,如下所示:

NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *path = [docsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.txt", nameOfFile]];

[fileString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];


由于某些原因,TextEdit无法识别NSUTF8StringEncoding。如何确定呢?

不胜感激,Fabian

最佳答案

我刚刚重新创建了您的代码,它对我来说很好用。 TextEdit可以很好地读取文件。

#import <Cocoa/Cocoa.h>

int main(int argc, char *argv[])
{
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

  NSString *fileString = @"Blah blah.";
  NSString *nameOfFile = @"blah";
  NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
  NSString *path = [docsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.txt", nameOfFile]];
  printf("fileString:\n%s\n", [fileString UTF8String]);
  printf("docsDirectory:\n%s\n", [docsDirectory UTF8String]);
  printf("path:\n%s\n", [path UTF8String]);
  /*
  fileString:
  Blah blah.
  docsDirectory:
  /Users/daniel/Documents
  path:
  /Users/daniel/Documents/blah.txt
  */
  [fileString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];
  [pool release];
  return 0;
}


我唯一能想到的是您的TextEdit首选项,这是我的:

10-08 07:58
查看更多