如何在不知道编码的情况下阅读文本文件

nac*_*o4d 7 iphone encoding text nsstring

当读取在我的应用程序之外的其他位置创建的文本文件时,使用的编码是未知的.我的应用程序正在使用NSUnicodeStringEncoding(与NSUTF16StringEncoding相同),因此读取UTF16编码文件以外的其他问题.

有没有办法可以猜出文件的编码?我的首要任务是能够读取UTF8文件,然后读取所有其他文件.迭代可用的编码并检查读取字符串的长度是否大于零真的是一个好方法吗?

提前致谢.

伊格纳西奥

Ole*_*ann 9

Apple的文档对如何继续提供了一些指导:字符串编程指南:使用未知编码读取数据:

如果你被迫猜测编码(并注意在没有明确信息的情况下,这是猜测):

  1. 尝试stringWithContentsOfFile:usedEncoding:error:initWithContentsOfFile:usedEncoding:error:(或基于URL的等价物).这些方法尝试确定资源的编码,如果成功通过引用返回所使用的编码.

  2. 如果(1)失败,请尝试通过将UTF-8指定为编码来读取资源.

  3. 如果(2)失败,请尝试适当的遗留编码.这里的"适当"取决于具体情况; 它可能是默认的C字符串编码,可能是ISO或Windows Latin 1,或其他东西,具体取决于数据的来源.