NSString with emoticons/emojis url encode

谁说胖子不能爱 提交于 2019-11-30 16:33:42

NSNonLossyASCIIStringEncoding to stringByAddingPercentEscapesUsingEncoding: returns nil because the string you're passing in is not ASCII. Using NSUTF8StringEncoding percent escapes the emoji characters and that's the result I would expect. If your server-side middleware is not automatically unescaping the emoji from the query string, then you should look to do that in your server-side code if it's causing issues upstream.

Fraser

Use this to escape emoji:

NSString *escapedEmoji = [NSString stringWithCString:[emojiString cStringUsingEncoding:NSNonLossyASCIIStringEncoding] encoding:NSUTF8StringEncoding];

And this to unescape emoji:

NSString *unescapedEmoji = [NSString stringWithCString:[escapedString cStringUsingEncoding:NSUTF8StringEncoding] encoding:NSNonLossyASCIIStringEncoding];
Karun

You can use the below code to encode emoji string

NSString *uniText = [NSString stringWithUTF8String:[youremojistring UTF8String]];
NSData *msgData = [uniText dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *goodMsg = [[NSString alloc] initWithData:msgData encoding:NSUTF8StringEncoding];
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!