2015-09-04 86 views
2

說我有以下字符串源自服務器:Swift:如何將 U文字編碼替換爲純UNICODE字符?

let uLiteralEncoded = "Derri\U00e8re le transfert d'Anthony Martial" 

我想用字符串來取代它,如下所示:

var plainEncoded = "Derrière le transfert d'Anthony Martial" 
+1

你應該給的一些事一些例子你已經嘗試過了。 SO不是一個編碼服務,每個人都在這裏提供幫助,但是您應該向我們展示您嘗試的內容,然後我們會幫助您弄清楚爲什麼它不起作用。 – dman2306

回答

2

隨着進一步的試驗,我終於找到了解決方案。這個格式是一個帶有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 
     } 
    } 
} 
0

試試這個

let uLiteralEncoded = "Derri\u{00e8}le transfert Anthony Martial" 

但是我找不到'd ''作爲UNICODE字符。

相關問題