Swift HTML解码麻烦

前端之家收集整理的这篇文章主要介绍了Swift HTML解码麻烦前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Swift中,我使用NSAttributedString解码HTML,见下文:
let encodedString = "Phải công nhận rằng kể từ lúc ông Thănglà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ải công nhận rằng kể từ lúc ông ThăngÂlÃm bá»™
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.dataUsingEncoding(NSUTF8StringEncoding)!
let attributedOptions : [String : AnyObject ] = [
    NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute: NSUTF8StringEncoding ] // <- ADDED
let attributedString = NSAttributedString(data: encodedData,error: nil)!
let decodedString = attributedString.string
println(decodedString)
// Output: Phải công nhận rằng kể từ lúc ông Thăng làm bộ trưởng

请注意,我必须插入两个解包操作符!使用Xcode 6.1.1进行编译.
您可能希望使用可选绑定检查结果.

(针对Swift 1.2更新)

原文链接:https://www.f2er.com/swift/319894.html

猜你在找的Swift相关文章