在這個函數中,我從NSTableView的NSArrayController中獲取選定的表情符號,連接到一個名爲emotes的IBOutlet。所選NSArray中的字符串包含發送到剪貼板的UTF8字符。NSString和UTF8十六進制轉換
// Get Selected Emoticon
NSArray * selectedemote = [emotes selectedObjects];
NSLog(@"%@",[selectedemote valueForKey:@"emote"]);
// Send to Clipboard
[self copyToClipboard:[NSString stringWithFormat:@"%@",[selectedemote valueForKey:@"emote"]]];
問題出在NSArray本身。它似乎將UTF8字符串輸出爲十六進制。這裏是字符串看起來像從NSLog的功能是什麼:
2010-08-23 11:23:56.411 Emoticon[7919:a0f] (
"\\(\U2579\U30ee\U2579)/"
)
是那裏的UTF-8十六進制轉換爲UTF-8字符的可能呢?謝謝。
一個字符串不包含UTF-8什麼。 UTF-8是一種編碼;您使用編碼從字符串中產生數據(或從數據中解碼字符串)。因此,您可以使用UTF-8數據或UTF-16數據編碼字符串的字符,但該字符串只包含字符。 – 2010-08-23 15:53:34