ios - 当我使用 .ascii 编码解码 HTML 页面时出现奇怪的字符串

标签 ios swift

我正在尝试从 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/

相关文章:

ios - 自定义 iOS 框架中的资源

ios - 在模拟器中安装了来自 github 的控件 - 现在它随每个应用程序一起启动

ios - iOS 磁航向示例代码

ios - 为自定义 View 调用 NSBundle(使用 loadNibName)后访问 IBOutlet 的最佳方法

ios - 在 App-Code 中注册 Apple Push Notification

ios - 更改 UIPickerView 列的大小

ios - UITableview 滚动改变图像,UITableview 滚动问题

ios - 在我的 iOS 应用程序中获取网页的缓存数据

ios - Alamofire POST 请求不工作

ios - 具有滚动功能的大量文本的 UIAlertController?