2011-09-30 112 views
0

我從服務器以XML格式檢索值,服務器發送以下字符串: 「這是一個很好的字符串,帶有Emoji \ ue056 \ ue056 \ ue056 \ ue057 \ ue057 \ ue056 \ ue056"UILabel顯示錶情符號而不是它們的Unicode值 ueXXXX

我一直在努力使我的UILabel顯示錶情符號圖標,而下面的

\ ue056 \ ue056 \ ue056 \ ue057 \ ue057 \ ue056 \ ue056

我已嘗試

[chatText setText:[chatString stringByReplacingOccurrencesOfString:@"\\\\u" withString:@"\\u"]]; 

沒太多運氣。正在絕望的我也做了以下內容:

[chatText setText:[[chatString cStringUsingEncoding:NSNonLossyASCIIStringEncoding] stringByReplacingOccurrencesOfString:@"\\\\u" withString:@"\\u"]]; 

注:分配以下字符串的伎倆:

[chatText setText:@"\ue056\ue056\ue056\ue057\ue057\ue056\ue056"]; 

回答

1

它看起來像你需要仔細檢查每一個字符,並使用stringWithFormat:@"%C"爲每個表情符號字符:

// Loop through string by characters, and then do something like: 
// NSString *emoji = [NSString stringWithFormat:@"%C", 16-bit Unicode character (unichar) here]; 
NSString *emoji = [NSString stringWithFormat:@"%C", 0xe415]; 
chatText.text = [chatText.text stringByAppendingString:emoji]; 

時退房String Format Specifiers

+0

非常感謝你的幫助。我擔心它除了一些中文字符外別無它物。我已經在我的物理iPhone上嘗試過了,而不是模擬器來消除模擬器可能沒有表情符號的任何可能性。 – SBGhatam

0

我已經建立了一個包含以下功能的stringHandler類來解決這個問題,這幾乎解決我的問題:

+ (NSString *) mapEmojiFromServer:(NSString *) inString 
{ 
    inString = [inString stringByReplacingOccurrencesOfString:@"\\" withString:@""]; 
    inString = [inString stringByReplacingOccurrencesOfString:[@"ue001" lowercaseString] withString:@"\ue001"]; 
. 
. 
. 

    return inString; 
} 

我還沒有發現比IDE導航和滾動時變得瘋狂其它性能問題通過包含此2000行功能的頁面

非常感謝您的幫助。

相關問題