gpt4 book ai didi

objective-c - 在iOS应用中显示表情符号图标时出现问题

转载 作者:行者123 更新时间:2023-12-01 18:28:07 24 4
gpt4 key购买 nike

我在弄清楚如何让表情符号图标显示在我正在开发的iPhone应用程序中时遇到麻烦。问题是,当有人从应用程序向数据库发布内容时,它会在应用程序中显示为正方形。应用从服务器上应获取表情符号的服务器获取的内容类似于\ uf604

有人知道我在做什么错吗?我一直在寻找一个好的答案,但到目前为止,我还没有发现任何完全相关的东西。

//more info
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
self.memoArray = [returnString JSONValue];

//when adding it to the label
cell.memoLabel.text = [itemData objectForKey: @"memo"];

我知道的是,例如'\ Uf604'需要为'\ U0001F604'。

最佳答案

这是Json解析器SBJSON中的错误。我在多个项目中使用了SBJson类,使用了多个版本,发现了一些Emoji字符所使用的复杂unicode的一些问题。图标用很长的unicode表示,我不记得确切的格式,但是它就像一个双unicode。在SBJson内部,我发现了一些解析大型unicode的错误。

我确实修改了一种方法,现在可以使用,但是当我进入Stig的SBJson存储库以了解有关信息时,发现了一个有关Unicode的公开问题:https://github.com/stig/json-framework/issues/115

但是,我的解决方案却大不相同。在我使用的版本中,我只需要在方法scanUnicodeChar中添加注释:如果使用它的主体,所有这些:

/*
if (hi >= 0xd800) { // high surrogate char?
... if-body ... ...
}
*/

如果您的版本包含该方法和“if”,请尝试将其删除。

对于其他版本,也许解决方案很简单。找到一个名为getStringToken的方法:在其内部的一个切换用例'\'语句中,尝试用这种方式进行注释:
/*
if (SBStringIsSurrogateHighCharacter(hi)) {
..... body ....
} else if ....... {
.... ....
} else {
*/

CFStringAppendCharacters((CFMutableStringRef)acc, &hi, 1);

/*
}
*/

我没有测试过最后一个,为了使一切正常工作,肯定还需要做更多的事情。

关于objective-c - 在iOS应用中显示表情符号图标时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11351647/

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