【发布时间】:2015-04-20 21:47:31
【问题描述】:
我仍在努力访问某些 Google 页面,并尝试了多种编码类型组合。我也尝试过 UTF8,如果失败则默认使用。这就是事情变得非常奇怪的地方。
我执行以下操作:
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 Error = Optional(Error Domain=NSCocoaErrorDomain Code=261 "操作无法完成。(Cocoa 错误 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 Error = Optional(Error Domain=NSCocoaErrorDomain Code=261 "操作无法完成。(Cocoa 错误 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,但都失败了,所以我将它缩小到只有两个,我遇到了同样的问题。
想法?我完全不知所措。
【问题讨论】: