【问题标题】:Sending emojis to backend and getting them back将表情符号发送到后端并取回它们
【发布时间】:2017-10-24 16:57:57
【问题描述】:

我需要向我的后端发送一个可能包含表情符号的 NSString,然后将其取回。 开发此应用程序的 Android 版本的人正在发送格式为“\\ud83d\\udcfb”的表情符号,所以我正在使用以下代码对我的文本进行编码:

NSString *uniText = [NSString stringWithCString:[textToEncode cStringUsingEncoding:NSNonLossyASCIIStringEncoding] encoding:NSUTF8StringEncoding];

问题是,当我从后端取回它时,我得到类似“ud83dudcfb”的东西,然后我无法将它转换回表情符号。

Android小哥说我需要发送4个“\”,比如“\\\\ud83d\\\\udcf”,但我不知道怎么做。

我不认为创建一个循环在每个代码之前添加两个反斜杠是一个好的解决方案。

有什么想法吗?

【问题讨论】:

    标签: ios unicode utf-8 emoji


    【解决方案1】:

    将表情符号转换为 unicode -

    NSData *data = [text dataUsingEncoding:NSNonLossyASCIIStringEncoding];
    NSString *Value = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    

    将 unicode 转换为 emoji -

    NSData *data = [text dataUsingEncoding:NSUTF8StringEncoding];
    NSString *Value = [[NSString alloc] initWithData:data encoding:NSNonLossyASCIIStringEncoding];
    

    希望对你有帮助

    【讨论】:

    • 我有同样的问题:数据被正确发送到服务器,但是当我取回它时,它看起来像这样:@"Some emojis... u2764ufe0fud83dude48",所以 unicode 到 emoji 转换器没有什么可以转换的。
    • 您需要检查保存在服务器上的字符串是否与您发送的匹配。在这个字符串 u2764ufe0fud83dude48 中如何添加“\”用户也可以将其键入为纯字符串。
    • 这就是问题所在。我不知道为什么,但服务器只是去掉了反斜杠。在将字符串发送到服务器之前,我必须再添加几个,但我确实使用你的代码对文本进行编码和解码,所以我将接受你的回答。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-09-10
    • 2017-02-13
    • 2021-10-10
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    相关资源
    最近更新 更多