我想在 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.
}
如果你能看到文本周围有奇怪的符号。有人可以帮我解决这个问题吗?
最佳答案
例子
解析 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
包含head
和body
,并且只有头部中的适当元素)
文档的对象模型
- 文档由元素和文本节点组成
- 继承链是:
Document
延伸Element
延伸Node.TextNode
延伸Node
. - 一个元素包含一系列子节点,并且有一个父元素。他们还仅提供经过过滤的子元素列表。
关于html - 快速将 HTML+Unicode 更改为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40739335/