2015-12-02 91 views
3

在我的應用程序中,用戶可以保存網頁。一個請求後,我做的:將未知編碼的NSData網頁轉換爲NSString

NSString(data:responseData, encoding: NSUTF8StringEncoding) 

NSData響應NSString轉換。但有些頁面有NSWindowsCP1251StringEncoding編碼或其他的東西,函數返回nil

如何檢測編碼?

+1

這可能幫助:http://stackoverflow.com/a/5436507/653513(約HTTP Content-Type頭) –

+0

,所以我需要首先檢查頭部? – Arti

+0

我會的。儘管它仍然不是100%防彈。 CP1251頁面_應具有'Content-Type:text/html; charset = windows-1251'標頭集。 –

回答

1

好吧,我解決了這個名字:

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 
}