How do I decode HTML entities in Swift?

后端 未结 23 1924
一生所求
一生所求 2020-11-22 01:47

I am pulling a JSON file from a site and one of the strings received is:

The Weeknd ‘King Of The Fall&         


        
23条回答
  •  遥遥无期
    2020-11-22 02:41

    Computed var version of @yishus' answer

    public extension String {
        /// Decodes string with HTML encoding.
        var htmlDecoded: String {
            guard let encodedData = self.data(using: .utf8) else { return self }
    
            let attributedOptions: [String : Any] = [
                NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
                NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue]
    
            do {
                let attributedString = try NSAttributedString(data: encodedData,
                                                              options: attributedOptions,
                                                              documentAttributes: nil)
                return attributedString.string
            } catch {
                print("Error: \(error)")
                return self
            }
        }
    }
    

提交回复
热议问题