加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift HTML解码麻烦

发布时间:2020-12-14 05:42:55 所属栏目:百科 来源:网络整理
导读:在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 = [NSDocumentTypeD
在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áo£i c?′ng nháo-n ráo±ng ká?? tá?? l?oc ?′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更新)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读