Swift从网址

时间:2015-09-13 08:42:19

标签: html ios swift swift2

我正在尝试从URL获取并打印HTML。这是我如何做到的(使用Swift 2):

let testUrl = NSURL(string: "https://www.google.com")
var html = NSString()
do {
    html = try NSString(contentsOfURL: testUrl!, encoding: NSUTF8StringEncoding)
} catch{print(error)}
print(html)

在控制台中打印以下错误:

  

Error Domain = NSCocoaErrorDomain Code = 261“无法使用Unicode(UTF-8)文本编码打开文件。” UserInfo = {NSURL = https://www.google.com,NSStringEncoding = 4}

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

www.google.com似乎发送了回复 ISO 8859-1 encoding,相应的NSString编码为NSISOLatin1StringEncoding

html = try NSString(contentsOfURL: testUrl!, encoding: NSISOLatin1StringEncoding)

您还可以自动检测HTTP响应编码, 例如,见https://stackoverflow.com/a/32051684/1187415

答案 1 :(得分:2)

Swift 3解决方案:

do {

html = try NSString(contentsOf: url, encoding: String.Encoding.isoLatin1.rawValue)

} catch let error {

  print(error)

}

答案 2 :(得分:0)

Swift 5解决方案:

brew update

brew cleanup --force

rm -rf /opt/homebrew-cask/Caskroom/julia