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

Ios 将编码未知的NSData网页转换为NSString,ios,cocoa-touch,character-encoding,nsstring,nsdata,Ios,Cocoa Touch,Character Encoding,Nsstring,Nsdata,在我的应用程序中,用户可以保存网页。在提出请求后,我会: NSString(data:responseData, encoding: NSUTF8StringEncoding) 将我的NSData响应转换为NSString。但是有些页面有NSWindowsCP1251String编码或其他编码,函数返回nil 如何检测编码?好的,我像这样解决了这个问题: var pageEncoding = NSUTF8StringEncoding if responseHeaderFields["Conte

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

NSString(data:responseData, encoding: NSUTF8StringEncoding)
将我的
NSData
响应转换为
NSString
。但是有些页面有
NSWindowsCP1251String编码
或其他编码,函数返回
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
}

这可能会有帮助:(关于HTTP内容类型头)所以我需要先检查头?我会的。虽然它仍然不是100%防弹的。CP1251页面应具有
内容类型:text/html;charset=windows-1251
header set.yes,其他页面有:“内容类型”:“text/html;charset=ISO-8859-1”