Ios 在Swift中,您如何转换&;度&引用;至°&引用;(即学位符号)?使用内置Cocoa实用程序(带有NSAttributedString)

Ios 在Swift中,您如何转换&;度&引用;至°&引用;(即学位符号)?使用内置Cocoa实用程序(带有NSAttributedString),ios,swift,nsdata,Ios,Swift,Nsdata,当我用下面的代码读取数据时: let urlContent = NSString(data: data!, encoding: NSUTF8StringEncoding) urlContent数据显示为“°;”。如何将其转换为“°”(即学位符号)?编辑:采用公认的可伸缩性答案。但是如果你有一个奇怪的情况,你只想替换一种角色,这个答案就行了 度符号在Swift中由字符串\u{00B0}表示。您可以将此事实与stringbyreplacingoccurrencesofstring()一起使用

当我用下面的代码读取数据时:

let urlContent = NSString(data: data!, encoding: NSUTF8StringEncoding)

urlContent数据显示为
“°;”
。如何将其转换为“°”(即学位符号)?

编辑:采用公认的可伸缩性答案。但是如果你有一个奇怪的情况,你只想替换一种角色,这个答案就行了

度符号在Swift中由字符串
\u{00B0}
表示。您可以将此事实与
stringbyreplacingoccurrencesofstring()
一起使用,以执行以下操作:

let formattedUrlContent = urlContent.stringByReplacingOccurrencesOfString("°", withString: "\u{00B0}")

这在Swift 2.0中也有效

stringByReplacingOccurrencesOfString("°", withString: "°")

像这样手动替换HTML转义字符并不是一个好的做法。Cocoa内置了一些实用程序,可以通过
NSAttributedString
为您实现这一点:

let input = "75°, partly cloudy"

let options: [String : AnyObject] = [NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute : NSUTF8StringEncoding]

if let data = input.dataUsingEncoding(NSUTF8StringEncoding) {

    do {
        let unescaped = try NSAttributedString(data: data, options: options, documentAttributes: nil)
        print(unescaped.string) // "75°, partly cloudy"
    } catch {
        print(error)
    }
}

简单的方法。我只是让不同的运行时处理选项变得复杂,谢谢@Naishta正如我在回答中所说的那样,这并不是取消HTML字符的最佳方式。当你将来有更多的角色需要卸载时,请注意…你也能提供swift 3解决方案吗。。