我试图加载一个未知编码的文件。这是因为我并不总是能够控制要加载的文件。我假设该方法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)。有人可以帮我吗?