我仍然在努力訪問某些Google頁面,並嘗試過多種編碼類型組合。如果失敗,我也嘗試過UTF8,然後進入默認狀態。這是事情變得非常奇怪的地方。contentsURL編碼類型的損壞?
我做到以下幾點:
println("URL within process page = \(url)")
println("Trying NSUTF8")
origURLString = String(contentsOfURL: url, encoding: NSUTF8StringEncoding, error: &error)
if (error != nil) {
println("Error = \(error)")
println("Trying NSASCII next")
origURLString = String(contentsOfURL: url, encoding: NSASCIIStringEncoding, error: &error)
if (error != nil) {
println("Error = \(error)")
}
}
if (error != nil) {
return "There seems to be a problem going to this site"
}
到contentsOfURL兩個調用失敗,出現以下跡:
試圖NSUTF8 錯誤=可選(錯誤域= NSCocoaErrorDomain代碼= 261「的操作couldn (Cocoa error 261.)「UserInfo = 0x7fbbda599b00 {NSURL = http://www.google.com/search?ie=ISO-8859-1&hl=en-GB&source=hp&q=hello&btnG=Google+Search&gbv=1,NSStringEncoding = 4})
嘗試NSASCII接下來 錯誤=可選(錯誤域= NSCocoaErrorDomain代碼= 261「該操作無法完成。 (可可錯誤261)」的UserInfo = {0x7fbbda599b00 = NSURL http://www.google.com/search?ie=ISO-8859-1&hl=en-GB&source=hp&q=hello&btnG=Google+Search&gbv=1,NSStringEncoding = 4})
但是,如果我不嘗試使用NSUTF8StringEncoding,只是使用ASCII編碼:
origURLString = String(contentsOfURL: url, encoding: NSASCIIStringEncoding, error: &error)
然後這工作(不太好,因爲編碼是不正確的)至少沒有錯誤代碼,我得到一個完整的HTML頁面
顯然,我不能使用ASCII編碼的一切,我寧願建立一個一般的方法是在違約之前先檢查UFT8
我用我的第一種方法腐蝕了什麼嗎?錯誤信息是否結轉?
我試着在一個循環中測試每個NSEncodingType並失敗,所以我縮小到只有兩個,我得到同樣的問題。
想法?我完全喪失了。
謝謝埃利亞斯。這看起來像一個非常好的通用編碼例程,但我不確定它如何幫助解決URL內容問題,或解釋爲什麼在ASCII請求之前執行UTF請求會阻止ASCII請求正常工作。 –
你可以在Swift [swiftHTTP](https://github.com/daltoniam/swiftHTTP)上開始嘗試'HTTPTask()',並說261錯誤是由於SSL證書 – eliasRuizHz