我试图加载一个未知编码的文件。这是因为我并不总是能够控制要加载的文件。我假设该方法stringWithContentsOfFile:usedEncoding:error:会执行此操作并让我知道文件编码。不幸的是,下面的代码没有提供我想要的编码——它总是返回0。
NSStringEncoding *encoding = nil;
NSError *error = nil;
NSString *json = [NSString stringWithContentsOfFile:path
usedEncoding:encoding
error:&error];
NSLog(@"\n%lu\n%@",(unsigned long)encoding,error);
它返回文件的内容,所以你可能想知道为什么我需要这种编码,那个字符串是 JSON,我想将它序列化为 NSDictionary 并且该dataUsingEncoding:方法需要编码。我试图传递encoding变量,但这会引发错误。所以我尝试了故障安全 UTF8 编码,然后它工作了。
NSData *jsonData = [json dataUsingEncoding:NSUTF8StringEncoding];
所以我必须使用这个不正确的encoding等于0而不是4(UTF8)。有人可以帮我吗?
