簡體   English   中英

Swift HTML解碼問題

[英]Swift HTML Decoding Trouble

在Swift中,我使用NSAttributedString解碼HTML,如下所示:

let encodedString = "Phải công nhận rằng kể từ lúc ông Thăng làm bộ trưởng"
let encodedData = encodedString.dataUsingEncoding(NSUTF8StringEncoding)
let attributedOptions = [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType]
let attributedString = NSAttributedString(data: encodedData, options: attributedOptions, documentAttributes: nil, error: nil)         
let decodedString = attributedString.string
println(decodedString)

但是結果是這樣的:

PháºicÃngnháºnrằngkểtừlúcôngThăngÂlÃmbá»™trưởng

真實結果必須與encodedString相同

這種方法有什么問題?

您必須在文檔選項中指定使用的字符編碼

let encodedString = "Phải công nhận rằng kể từ lúc ông Thăng làm bộ trưởng"
let encodedData = encodedString.data(using: .utf8)!

let attributedOptions : [NSAttributedString.DocumentReadingOptionKey : Any ] = [
    .documentType: NSAttributedString.DocumentType.html,
    .characterEncoding: String.Encoding.utf8.rawValue ]
do {
    let attributedString = try NSAttributedString(data: encodedData, options: attributedOptions, documentAttributes: nil)
    let decodedString = attributedString.string
    print(decodedString)
} catch {
    // error ...
}

// Output: Phải công nhận rằng kể từ lúc ông Thăng làm bộ trưởng

(已為Swift 4更新)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM