将未知编码的 NSData 网页转换为 NSString

Convert NSData webpage with unknown encoding to NSString

在我的应用程序中,用户可以保存网页。在请求之后,我做:

NSString(data:responseData, encoding: NSUTF8StringEncoding)

将我的 NSData 回复转换为 NSString。但是有些页面有 NSWindowsCP1251StringEncoding 编码,或者其他的,以及函数 returns nil.

如何检测编码?

好的,我这样解决了这个问题:

var pageEncoding = NSUTF8StringEncoding
if responseHeaderFields["Content-Type"] == "text/html;charset=ISO-8859-1" {
   pageEncoding = NSISOLatin1StringEncoding
}
if responseHeaderFields["Content-Type"] == "text/html;charset=windows-1251" {
    pageEncoding = NSWindowsCP1251StringEncoding
}