gpt4 book ai didi

ios - NSString 到表情符号 Unicode

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:27:59 24 4
gpt4 key购买 nike

我正在尝试从后端提取一个包含表情符号 unicode 的 JSON 文件。这些不是遗留的 unicode(例如:\ue415),而是跨平台工作的 unicode(例如:\U0001F604)。

这是一个被拉取的 json 示例:

[
{
"unicode": "U0001F601",
"meaning": "Argh!"
},
{
"unicode": "U0001F602",
"meaning": "Laughing so hard"
}
]

我很难将这些字符串转换为将在应用程序中显示为表情符号的 unicode。

非常感谢任何帮助!

最佳答案

为了将这些 un​​icode 字符转换为 NSString,您需要获取这些 un​​icode 字符的字节。

得到bytes后,很容易用bytes初始化一个NSString。下面的代码完全符合您的要求。它假定 jsonArray 是从您的 json 中生成的 NSArray

// initialize using json serialization (possibly NSJSONSerialization)
NSArray *jsonArray;

[jsonArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSString *charCode = obj[@"unicode"];

// remove prefix 'U'
charCode = [charCode substringFromIndex:1];

unsigned unicodeInt = 0;

//convert unicode character to int
[[NSScanner scannerWithString:charCode] scanHexInt:&unicodeInt];


//convert this integer to a char array (bytes)
char chars[4];
int len = 4;

chars[0] = (unicodeInt >> 24) & (1 << 24) - 1;
chars[1] = (unicodeInt >> 16) & (1 << 16) - 1;
chars[2] = (unicodeInt >> 8) & (1 << 8) - 1;
chars[3] = unicodeInt & (1 << 8) - 1;


NSString *unicodeString = [[NSString alloc] initWithBytes:chars
length:len
encoding:NSUTF32StringEncoding];

NSLog(@"%@ - %@", obj[@"meaning"], unicodeString);
}];

关于ios - NSString 到表情符号 Unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24662336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com