2
說我有以下字符串源自服務器:Swift:如何將 U文字編碼替換爲純UNICODE字符?
let uLiteralEncoded = "Derri\U00e8re le transfert d'Anthony Martial"
我想用字符串來取代它,如下所示:
var plainEncoded = "Derrière le transfert d'Anthony Martial"
說我有以下字符串源自服務器:Swift:如何將 U文字編碼替換爲純UNICODE字符?
let uLiteralEncoded = "Derri\U00e8re le transfert d'Anthony Martial"
我想用字符串來取代它,如下所示:
var plainEncoded = "Derrière le transfert d'Anthony Martial"
隨着進一步的試驗,我終於找到了解決方案。這個格式是一個帶有HTML實體的HTML格式(因此引用爲'帶\ U編碼的變音符號)。
然後我寫了從它建立一個標準的斯威夫特2字符串作爲構造一個字符串擴展如下:
let swiftString = String(htmlEncodedString: "Derri\U00e8re le transfert d'Anthony Martial")
擴展:
extension String {
/// String as HTML
init(htmlEncodedString: String) {
let encodedData = htmlEncodedString.dataUsingEncoding(NSUTF8StringEncoding)!
let attributedOptions : [String: AnyObject] = [
NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute: NSUTF8StringEncoding
]
do {
let attributedString = try NSAttributedString(data: encodedData, options: attributedOptions, documentAttributes: nil)
self.init(attributedString.string)
}
catch {
self.init(htmlEncodedString) // Something gone wrong, stick with the initial string
}
}
}
試試這個
let uLiteralEncoded = "Derri\u{00e8}le transfert Anthony Martial"
但是我找不到'd ''作爲UNICODE字符。
你應該給的一些事一些例子你已經嘗試過了。 SO不是一個編碼服務,每個人都在這裏提供幫助,但是您應該向我們展示您嘗試的內容,然後我們會幫助您弄清楚爲什麼它不起作用。 – dman2306