我正在製作一個消息傳遞應用程序,當我從Android端發送表情符號時,它在iOS端顯示正常,但iOS方不能(似乎)從iOS自己的鍵盤顯示emojis!表情符號在使用iOS鍵盤輸入時不顯示在NSAttributedString中,在Android上鍵入時輸入
我在其中顯示錶情符號的標籤使用屬性文本,文本來自HTML。下面的代碼是用於生成NSAttributedString
var msg = getTextForDisplay()//Essentially gets the plain text
msg = "<span style=\"font-family: Helvetica; font-size:14pt;\">" + msg + "</span>"
if let data = msg.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false){
let attributed = try? NSAttributedString(data: data, options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType ], documentAttributes: nil)
return attributed
}
即使陌生人,當我從iOS的發送表情符號,儘管它不會在標籤顯示如上述那樣,它只表示在Android側完全正常。在iOS方面,在標籤,它表明這似乎是jibberish
我絕對相信錯誤是表情符號的顯示,因爲打印時到控制檯時,我會看到真正的表情符號,並且在保存到設備存儲器中並稍後在Mac上讀取時,它就是真正的表情符號。但是當表情符號被加載到屬性標籤時,它顯示亂碼
任何幫助表示讚賞。我知道這個問題是與編碼有關我只是不知道究竟是什麼問題,以及如何解決它
也請分享 'getTextForDisplay' 功能還有很多事情。當轉換爲/來自各種文本格式時可能會出錯,特別是如果您使用JSON傳遞。 – Ben
@Ben它實際上返回一個字符串與pl ain文本,例如「你好」 –
只是一個硬編碼的字符串,或從其他地方導入的字符串? – Ben