在这个函数中,我从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