How to decode text/html utf-8 string ios swift 3

I'm using Kanna to parse data from html source code.

My code:

func parseDataFromHtmlSource() {
    guard let myURL = URL(string: self.url! ) else {
        return
    }
    var myURLString = ""
    do {
        myURLString = try String(contentsOf: myURL, encoding: .ascii)
    } catch let error {
        print("Error: \(error)")
    }

    if let doc = HTML(html: myURLString, encoding: .utf8) {

        let item = doc.xpath("//*[@id='pagebody_list']/div/div[1]/div/ul/li[3]/p[2]/text()")
        self.des_content = item.first?.text
    }
}

html source

But the result is:

Monkey D. Luffy, 1 cáºu bé rất thÃch hải tặc có Æ°á»c mÆ¡ tìm Äược kho báu One Piece và trá» thành Vua hải tặc - Pirate King. Lúc nhá», Luffy tình cá» Än phải trái quá» (Devil Fruit) Gomu Gomu, nó cho cÆ¡ thá» cáºu khả nÄng co dãn Äàn há»i nhÆ° cao su nhÆ°ng Äá»i lại cáºu sẽ không bao giá» biết bÆ¡i. Sau Äó Luffy lại Äược Shank cứu thoát tuy nhiên ông ta bá» mất 1 cánh tay. Sau Äấy Shank chia tay Luffy và Äá» lại cho cáºu cái mÅ© rÆ¡m (Straw Hat) và nói rằng: \"Sau này bao giá» thành cÆ°á»p biá»n hãy gặp ta và trả lại nó\". ChÃnh lá»i nói này Äã thúc Äầy Luffy trá» thành 1 cÆ°á»p biá»n tháºt sá»±

I want my String like in the picture above. Do you have any idea to fix it?

Upvotes: 1

Views: 3757

Answers (1)

Dong Nguyen
Dong Nguyen

Reputation: 93

Replace ".ascii" to ".utf8". Have fun do { myURLString = try String(contentsOf: myURL, encoding: .utf8) } catch let error { print("Error: \(error)") }

Upvotes: 2

Related Questions