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解决方案吗。。