繁体   English   中英

在swift中将HTML + Unicode更改为字符串

[英]Change HTML+Unicode to string in swift

我想在TextView中将api返回html + unicode更改为字符串。 但我注意到有奇怪的符号。 我不知道如何将其改为适当的符号。 现在我使用这个扩展名:

extension String {
    var html2String:NSAttributedString {
        return try! NSAttributedString(data:data(using: String.Encoding.utf8, allowLossyConversion: true)!, options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], documentAttributes: nil)
    }
    var localized: String {
        return NSLocalizedString(self, tableName: nil, bundle: Bundle.main, value: "", comment: "")
    }
}

我目前的守则是:

override func viewDidLoad() {
        super.viewDidLoad()
        setupWhiteLeftButton()
        //self.navigationItem.title = "About".capitalized
        let htmlString = str.html2String
        txtView.attributedText = htmlString

        txtView.font = UIFont(name: "Play", size: 14.0)
        txtView.tintColor = UIColor(red: 228/255, green: 49/255, blue: 23/255, alpha: 1.0)
        txtView.isEditable = false;

        txtView.scrollsToTop = true
        let contentHeight = txtView.contentSize.height
        let offSet = txtView.contentOffset.x
        let contentOffset = contentHeight - offSet
        txtView.contentOffset = CGPoint(x: 0, y: -contentOffset)
        // Do any additional setup after loading the view.
  }

结果是 在此输入图像描述

如果你能看到文本周围有奇怪的符号。 有人可以帮我弄这个吗?

使用SwiftSoup

为例

要解析HTML文档:

let html = "<html><head><title>First parse</title></head><body><p>Parsed HTML into a doc.</p></body></html>"
let doc: Document = try SwiftSoup.parse(html)
let myText = try doc.text()
  • 未封闭的标签(例如, <p>Lorem <p>Ipsum解析为<p>Lorem</p> <p>Ipsum</p>
  • 隐式标签(例如裸<td>Table data</td>被包装到<table><tr><td>...
  • 可靠地创建文档结构(包含headbody html ,以及头部内仅适当的元素)

文档的对象模型

  • 文档由Elements和TextNodes组成
  • 继承链是: Document extends Element extends Node.TextNode extends Node
  • 元素包含子节点列表,并具有一个父元素。 它们还仅提供子元素的筛选列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM