How do I decode HTML entities in Swift?

后端 未结 23 2208
一生所求
一生所求 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:33

    Swift 2 version of @akashivskyy's extension,

     extension String {
         init(htmlEncodedString: String) {
             if let encodedData = htmlEncodedString.dataUsingEncoding(NSUTF8StringEncoding){
                 let attributedOptions : [String: AnyObject] = [
                NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
                NSCharacterEncodingDocumentAttribute: NSUTF8StringEncoding
            ]
    
                 do{
                     if let attributedString:NSAttributedString = try NSAttributedString(data: encodedData, options: attributedOptions, documentAttributes: nil){
                         self.init(attributedString.string)
                     }else{
                         print("error")
                         self.init(htmlEncodedString)     //Returning actual string if there is an error
                     }
                 }catch{
                     print("error: \(error)")
                     self.init(htmlEncodedString)     //Returning actual string if there is an error
                 }
    
             }else{
                 self.init(htmlEncodedString)     //Returning actual string if there is an error
             }
         }
     }
    

提交回复
热议问题