我正在尝试从 URL 解析 html:
func fetch(url: URL, completion: @escaping ((Result) -> Void)) {
var request = URLRequest(url: url)
request.httpMethod = "GET"
let session = URLSession.init(configuration: URLSessionConfiguration.default)
session.dataTask(with: request) { [weak self] data, _, error in
guard let self = self else { return }
if let error = error {
completion(.failure(error))
return
}
if let data = data, let html = String(data: data, encoding: .ascii) {
completion(.success(self.metaTagsDictionary(for: html)))
return
} else {
completion(.failure(ParseError.fail))
return
}
}.resume()
}
然后我打印结果:
dict.keys.forEach { 打印(字典[$0]) }
但是我似乎在字符串中收到了一堆奇怪的字符,例如:
2020 年 2020 年 12 月 12 日æ¡å¡¡¡¡¡å¡§ã€‚")
知道这是什么吗?我使用了错误的编码吗?
最佳答案
您正在使用 .ascii
进行解码,这对于该数据来说几乎肯定是不正确的。大多数网页都采用 UTF-8 (.utf8
) 编码,但还有其他选项。这取决于网站。但我会从 UTF-8 开始。如果返回nil
,那么您将需要调查该网站并确定它使用的编码。
关于ios - 当我使用 .ascii 编码解码 HTML 页面时出现奇怪的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63526879/