swift2 Swift从URL获取HTML

ipakzgxi  于 2022-11-06  发布在  Swift
关注(0)|答案(3)|浏览(273)

我正在尝试从一个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)打开文件。”用户信息={NSURL= https://www.google.com,NSStringEncoding=4}
你知道吗?

jjjwad0x

jjjwad0x1#

看起来www.google.com使用ISO 8859-1 encoding发送响应,对应的NSString编码为NSISOLatin1StringEncoding

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

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

y0u0uwnf

y0u0uwnf2#

Swift 3解决方案:

do {

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

} catch let error {

  print(error)

}
azpvetkf

azpvetkf3#

Swift 5解决方案:

try! String(contentsOf: URL(string: "https://www.google.com"), encoding: .utf16)

相关问题