3
在我的应用程序中,用户可以保存网页。一个请求后,我做的:将未知编码的NSData网页转换为NSString
NSString(data:responseData, encoding: NSUTF8StringEncoding)
我NSData
响应NSString
转换。但有些页面有NSWindowsCP1251StringEncoding
编码或其他的东西,函数返回nil
。
如何检测编码?
在我的应用程序中,用户可以保存网页。一个请求后,我做的:将未知编码的NSData网页转换为NSString
NSString(data:responseData, encoding: NSUTF8StringEncoding)
我NSData
响应NSString
转换。但有些页面有NSWindowsCP1251StringEncoding
编码或其他的东西,函数返回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://stackoverflow.com/a/5436507/653513(约HTTP Content-Type头) –
,所以我需要首先检查头部? – Arti
我会的。尽管它仍然不是100%防弹。 CP1251页面_应具有'Content-Type:text/html; charset = windows-1251'标头集。 –