我的iOS应用程序向服务器发送数据时如何处理表情符号(POST,GET)

时间:2014-09-07 16:33:30

标签: ios nsstring emoji unicode-string

我尝试搜索SO但无法找到解决方法。

我的iOS从用户收到评论(NSString)并通过Http POST将其发送回服务器,然后如果用户想要再次查看该评论,则评论由Http get发回。我在UILabel中展示了这一点。

如果它包含表情符号(笑脸等)

,我似乎无法正确显示评论

当我输入表情符号时。控制台显示发布到服务器之前的数据是“\ Ud83d \ Ude1d” 当我通过JSON从我的服务器上取回它时,它就是这个字符串“\ Uf61d”。它只是用方框字母显示而不是一个合适的表情符号。

这是我将代码发送到服务器时的代码(NSUTF8Encoding)

NSDictionary *postDetailDict = [NSDictionary
                            dictionaryWithObjectsAndKeys:
                                itemID,@"item_id",
                                title,@"title",
                                nil];
for (NSString *param in postDetailDict) {
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", param] dataUsingEncoding:NSUTF8StringEncoding]];
    [body appendData:[[NSString stringWithFormat:@"%@\r\n", [postDetailDict objectForKey:param]] dataUsingEncoding:NSUTF8StringEncoding]];
}

当我从HTTP GET收到数据时。我只是用

[commentObject setComment:[d objectForKey:@"comment"]];
[commentLabel setLabel:commentObject.comment];

有人请帮忙。我的服务器在Heroku(Rails)上

提前致谢

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。它与前端无关。这是关于从我的rails服务器返回的JSON没有正确解码的方式。 此解决方法可以为具有相同问题的人解决此问题

http://sosedoff.com/2012/02/18/emoji-and-rails.html