Reputation: 142
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
}
}
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
Reputation: 93
Replace ".ascii" to ".utf8". Have fun
do {
myURLString = try String(contentsOf: myURL, encoding: .utf8)
} catch let error {
print("Error: \(error)")
}
Upvotes: 2