html - 快速将 HTML+Unicode 更改为字符串

标签 html ios swift unicode uitextview

我想在 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.
  }

结果是enter image description here

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

最佳答案

使用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>... )
  • 可靠地创建文档结构(html 包含 headbody,并且只有头部中的适当元素)

文档的对象模型

  • 文档由元素和文本节点组成
  • 继承链是:Document延伸Element延伸Node.TextNode延伸Node .
  • 一个元素包含一系列子节点,并且有一个父元素。他们还仅提供经过过滤的子元素列表。

关于html - 快速将 HTML+Unicode 更改为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40739335/

相关文章:

html - 在隐藏的 div 中绘制的 JointJS 图比例错误

ios - Image.xcassets 在模拟器上呈现奇怪

ios - 使用时属性显示为零,但在使用前打印到调试控制台?

ios - 在 UITableViewCell 中选择特定索引后在 safari 中打开链接

ios - 将 UIView 中心坐标从本地坐标转换为窗口基准坐标?

html - 如何将 CSS 元素直接放置在彼此之下?

html - 在 META TITLE 标签中重复 TITLE 文本有什么好处吗?

html - 如何更改 HTML 中复选框的选中标记颜色?

swift - 从抛出函数到非抛出函数的无效转换

arrays - Swift:如何正确地将字符串值与多个值进行比较